From 5ba7fecc2c1e6d2a47c7140565b7c06923367c5e Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 5 Jul 2021 10:39:48 +0300 Subject: workflows/test: factor out steps & refactoring --- .github/actions/check-cc-cygwin/action.yml | 26 ++++++++++++++++++++++++++ .github/actions/check-cc/action.yml | 25 +++++++++++++++++++++++++ .github/actions/run-foo/action.yml | 26 ++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 .github/actions/check-cc-cygwin/action.yml create mode 100644 .github/actions/check-cc/action.yml create mode 100644 .github/actions/run-foo/action.yml (limited to '.github/actions') diff --git a/.github/actions/check-cc-cygwin/action.yml b/.github/actions/check-cc-cygwin/action.yml new file mode 100644 index 0000000..042709f --- /dev/null +++ b/.github/actions/check-cc-cygwin/action.yml @@ -0,0 +1,26 @@ +name: Check cc/c++ +description: Check cc/c++ (on Cygwin) +runs: + using: composite + steps: + - run: | + check_tool() { + local exe + for exe; do + full_path="$( command -v "$exe" )" + echo "$full_path" + + output="$( "$full_path" --version )" + echo "$output" + + # Is this really the most stable piece of `gcc --version` output? + if ! echo "$output" | grep -F -- "This is free software; see the source for copying conditions."; then + echo 'Unexpected `'"$exe"' --version` output.' >&2 + exit 1 + fi + done + } + + check_tool cc + check_tool c++ + shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' diff --git a/.github/actions/check-cc/action.yml b/.github/actions/check-cc/action.yml new file mode 100644 index 0000000..5a6daa8 --- /dev/null +++ b/.github/actions/check-cc/action.yml @@ -0,0 +1,25 @@ +name: Check cc/c++ +description: Check cc/c++ +runs: + using: composite + steps: + - run: | + $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") + } + + Check-Exe cc + Check-Exe c++ + shell: pwsh diff --git a/.github/actions/run-foo/action.yml b/.github/actions/run-foo/action.yml new file mode 100644 index 0000000..3167545 --- /dev/null +++ b/.github/actions/run-foo/action.yml @@ -0,0 +1,26 @@ +name: Run foo.exe +description: Run foo.exe and verify its output +runs: + using: composite + steps: + - run: | + $expected = @" + Doing something #1 + Doing something #2 + Doing something #3 + "@ + + $actual = & (Join-Path . foo) + $actual = $actual -join [Environment]::NewLine + + echo @" + Expected output: + $expected + "@ + echo @" + Actual output: + $actual + "@ + + $($actual -eq $expected) -or $(throw "Unexpected output!") + shell: pwsh -- cgit v1.2.3