Skip to content

Fix infinite prompt loop on stdin EOF #48

Fix infinite prompt loop on stdin EOF

Fix infinite prompt loop on stdin EOF #48

Workflow file for this run

name: Continuous Integration
on:
push:
paths:
- "**.c"
- "**.h"
- "**.cpp"
- "**.hpp"
- "**.build"
- "**.in"
- "**.yml"
pull_request:
paths:
- "**.c"
- "**.h"
- "**.cpp"
- "**.hpp"
- "**.build"
- "**.in"
- "**.yml"
jobs:
build-ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install build dependancies
run: |
sudo apt-get update
sudo apt-get install build-essential expect pkg-config fuse libfuse-dev
- uses: actions/setup-python@v3
with:
python-version: "3.x"
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
restore-keys: |
${{ runner.os }}-pip
- run: python -m pip install --upgrade meson ninja
- name: Build pfsshell
run: |
meson setup build/
meson compile -C build
- name: Run Test
run: |
cd test
time ./pfsshell_test.tcl
- uses: actions/upload-artifact@master
with:
name: pfsshell-ubuntu
path: build/pfsshell
- name: Build pfsfuse
run: |
rm -rf build/
meson setup build/ -Denable_pfsfuse=true
meson compile -C build
- uses: actions/upload-artifact@master
with:
name: pfsfuse-ubuntu
path: build/pfsfuse
build-win32:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- run: |
sudo apt-get update
sudo apt-get install build-essential mingw-w64
sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
- uses: actions/setup-python@v3
with:
python-version: "3.x"
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
restore-keys: |
${{ runner.os }}-pip
- run: python -m pip install --upgrade meson ninja
- run: |
meson setup build/ --cross-file ./external/meson_toolchains/mingw32_meson.ini
meson compile -C build archive
- uses: actions/upload-artifact@master
with:
name: pfsshell-win32
path: build/*.7z
build-pfsfuse-win32:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install MSYS2 packages
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
install: |
base-devel git make texinfo patch binutils mpc-devel p7zip mingw-w64-i686-gcc
mingw-w64-i686-cmake mingw-w64-i686-extra-cmake-modules mingw-w64-i686-make mingw-w64-i686-meson
update: true
shell: msys2 {0}
- name: Build pfsfuse
run: |
meson setup build/ -Denable_pfsfuse=true
meson compile -C build
cp -f external/dokany/license.lgpl.txt build/
- uses: actions/upload-artifact@master
with:
name: pfsfuse-win32
path: |
build/pfsfuse.exe
build/libdokanfuse*.dll
build/license.lgpl.txt
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-python@v3
with:
python-version: "3.x"
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
restore-keys: |
${{ runner.os }}-pip
- run: python -m pip install --upgrade meson ninja
- run: brew install macfuse coreutils
- run: |
meson setup build/
meson compile -C build
- name: Run Test
run: |
cd test
time ./pfsshell_test.tcl
- uses: actions/upload-artifact@master
with:
name: pfsshell-macos
path: build/pfsshell
- run: |
rm -rf build/
meson setup build/ -Denable_pfsfuse=true
meson compile -C build
- uses: actions/upload-artifact@master
with:
name: pfsfuse-macos
path: build/pfsfuse
create-release:
needs: [build-ubuntu, build-win32, build-macos, build-pfsfuse-win32]
runs-on: ubuntu-20.04
if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master'
steps:
- name: Download all artifact
uses: actions/download-artifact@v3
- name: Prepare artifacts for release
run: |
7z a -tzip pfsshell-ubuntu.zip pfsshell-ubuntu/*
7z a -tzip pfsshell-macos.zip pfsshell-macos/*
7z a -tzip pfsfuse-ubuntu.zip pfsfuse-ubuntu/*
7z a -tzip pfsfuse-macos.zip pfsfuse-macos/*
7z a -tzip pfsfuse-win32.zip pfsfuse-win32/*
- name: Create prerelease
if: github.ref == 'refs/heads/master'
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: true
automatic_release_tag: "latest"
title: "Latest development builds"
files: |
pfsshell-win32/*
pfsfuse-win32.zip
pfsshell-ubuntu.zip
pfsshell-macos.zip
pfsfuse-ubuntu.zip
pfsfuse-macos.zip
- name: Create release
if: startsWith(github.ref, 'refs/tags/v')
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: "${{ contains(github.ref, '-rc') }}"
files: |
pfsshell-win32/*
pfsfuse-win32.zip
pfsshell-ubuntu.zip
pfsshell-macos.zip
pfsfuse-ubuntu.zip
pfsfuse-macos.zip