From ca3ac59b71a1d613f7d978f12d9593f68b7ee907 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 18 Jan 2021 15:32:28 +0300 Subject: project.ci: add GitHub Actions --- .github/workflows/ci_github.yml | 76 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/ci_github.yml (limited to '.github/workflows/ci_github.yml') diff --git a/.github/workflows/ci_github.yml b/.github/workflows/ci_github.yml new file mode 100644 index 0000000..b6f3ec5 --- /dev/null +++ b/.github/workflows/ci_github.yml @@ -0,0 +1,76 @@ +# The project.ci.github package is tested. + +name: CI (GitHub) + +on: + push: + branches-ignore: + - travis + - appveyor + pull_request: + schedule: + # Weekly, at 5:30 AM on Saturday (somewhat randomly chosen). + - cron: '30 5 * * 6' + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + os: [ubuntu-18.04, windows-2019] + configuration: [Debug, Release] + include: + # Prettier run names. + - {os: ubuntu-18.04, name: Ubuntu} + - {os: windows-2019, name: VS 2019} + + runs-on: '${{ matrix.os }}' + + name: '${{ matrix.name }} / ${{ matrix.configuration }}' + + env: + platform: x64 + configuration: '${{ matrix.configuration }}' + boost_version: 1.72.0 + + defaults: + run: + shell: pwsh + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Build Boost + run: python -m project.ci.github.boost -- --with-filesystem + + - name: Build example project + run: python -m project.ci.github.cmake --install --subdir examples/boost -- -D Boost_DEBUG=ON + + - name: Run example project + run: | + cd (Join-Path $env:GITHUB_WORKSPACE .. install bin) + $foo_path = Join-Path (Get-Location).Path foo + if ('${{ runner.os }}' -eq 'Windows') { + $foo_path += '.exe' + } + + $relative = 'test.txt' + $absolute = Join-Path (Get-Location).Path $relative + + $actual = & $foo_path $relative + echo 'Actual output:' + echo $actual + + $expected = $foo_path,$absolute + echo 'Expected output:' + echo $expected + + if (Compare-Object $actual $expected -CaseSensitive) { + throw 'Unexpected output' + } -- cgit v1.2.3