From 98bb4fafffc2d6d5bc181c5e55140ac1d40b267c Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Fri, 2 Jul 2021 14:49:57 +0300 Subject: workflows/test: test multiple versions --- .github/actions/check-cc/action.yml | 35 ++++++++++++++++++++++++++--------- .github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/.github/actions/check-cc/action.yml b/.github/actions/check-cc/action.yml index d2b98ed..945966f 100644 --- a/.github/actions/check-cc/action.yml +++ b/.github/actions/check-cc/action.yml @@ -1,16 +1,33 @@ name: Check cc/c++ description: Check cc/c++ +inputs: + version: + description: Specific version to check + required: false runs: using: composite steps: - # Is this really the most stable piece of `gcc --version` output? - run: | - echo (Get-Command cc).Path - $cc = & cc --version - echo $cc - $($cc | Select-String -Pattern "This is free software; see the source for copying conditions." -SimpleMatch -Quiet) -or $(throw "Unexpected `cc --version` output") - echo (Get-Command c++).Path - $cxx = & c++ --version - echo $cxx - $($cxx | Select-String -Pattern "This is free software; see the source for copying conditions." -SimpleMatch -Quiet) -or $(throw "Unexpected `c++ --version` output") + $version = '${{ inputs.version }}' + + function Check-Exe { + param( + [Parameter(Mandatory=$true)] + [string] $Exe + ) + + echo (Get-Command $Exe).Path + $output = & $Exe --version + echo $output + + # Is this really the most stable piece of `gcc --version` output? + $($output | Select-String -Pattern "This is free software; see the source for copying conditions." -SimpleMatch -Quiet) -or $(throw "Unexpected `$Exe --version` output") + + if ($script:version) { + $($output | Select-String -Pattern "$script:version." -SimpleMatch -Quiet) -or $(throw "Unexpected `$Exe --version` output") + } + } + + Check-Exe cc + Check-Exe c++ shell: pwsh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5de83a8..2215272 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,6 +31,35 @@ jobs: - name: Check cc/c++ uses: ./.github/actions/check-cc + versions: + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-20.04] + version: [4.8, 5, 6, 7, 8, 9, 10, 11] + exclude: + - {os: ubuntu-20.04, version: 4.8} + - {os: ubuntu-20.04, version: 5} + - {os: ubuntu-20.04, version: 6} + runs-on: '${{ matrix.os }}' + name: 'Version: ${{ matrix.os }} / ${{ matrix.version }}' + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up GCC + uses: ./ + with: + version: '${{ matrix.version }}' + platform: '${{ matrix.platform }}' + cc: 1 + - name: Build foo.exe + uses: ./.github/actions/build-foo + - name: Run foo.exe + uses: ./.github/actions/run-foo + - name: Check cc/c++ + uses: ./.github/actions/check-cc + with: + version: '${{ matrix.version }}' + cygwin: strategy: matrix: -- cgit v1.2.3