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_appveyor.yml | 6 ++-- .github/workflows/ci_github.yml | 76 +++++++++++++++++++++++++++++++++++++++ .github/workflows/ci_travis.yml | 6 ++-- 3 files changed, 80 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/ci_github.yml (limited to '.github') diff --git a/.github/workflows/ci_appveyor.yml b/.github/workflows/ci_appveyor.yml index 8427e43..728c378 100644 --- a/.github/workflows/ci_appveyor.yml +++ b/.github/workflows/ci_appveyor.yml @@ -52,12 +52,10 @@ jobs: run: mkdir C:\projects - name: Build Boost - run: | - python -m project.ci.appveyor.boost -- --with-filesystem + run: python -m project.ci.appveyor.boost -- --with-filesystem - name: Build example project - run: | - python -m project.ci.appveyor.cmake --install + run: python -m project.ci.appveyor.cmake --install - name: Run example project run: | 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' + } diff --git a/.github/workflows/ci_travis.yml b/.github/workflows/ci_travis.yml index 060970d..495a645 100644 --- a/.github/workflows/ci_travis.yml +++ b/.github/workflows/ci_travis.yml @@ -46,12 +46,10 @@ jobs: python-version: '3.x' - name: Build Boost - run: | - python -m project.ci.travis.boost -- --with-filesystem + run: python -m project.ci.travis.boost -- --with-filesystem - name: Build example project - run: | - python -m project.ci.travis.cmake --install + run: python -m project.ci.travis.cmake --install - name: Run example project run: | -- cgit v1.2.3