diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2021-07-02 20:16:57 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2021-07-02 20:22:14 +0300 |
commit | 3d49180b0bfb13b80694936f6dd6c25aa4355676 (patch) | |
tree | 9a1c3fe8a47bc6cff712989928c3ce35c4d40a0a /.github/actions | |
parent | apt-get best scripting practices (diff) | |
download | setup-clang-3d49180b0bfb13b80694936f6dd6c25aa4355676.tar.gz setup-clang-3d49180b0bfb13b80694936f6dd6c25aa4355676.zip |
workflows/test: factor out steps & refactoring
Diffstat (limited to '')
-rw-r--r-- | .github/actions/build-foo-cygwin/action.yml | 20 | ||||
-rw-r--r-- | .github/actions/build-foo/action.yml | 20 | ||||
-rw-r--r-- | .github/actions/check-cc-cygwin/action.yml | 25 | ||||
-rw-r--r-- | .github/actions/check-cc/action.yml | 22 | ||||
-rw-r--r-- | .github/actions/run-foo/action.yml | 26 |
5 files changed, 113 insertions, 0 deletions
diff --git a/.github/actions/build-foo-cygwin/action.yml b/.github/actions/build-foo-cygwin/action.yml new file mode 100644 index 0000000..08fb820 --- /dev/null +++ b/.github/actions/build-foo-cygwin/action.yml @@ -0,0 +1,20 @@ +name: Build foo.exe +description: Build foo.exe (on Cygwin) +inputs: + platform: + description: Target platform + required: true +runs: + using: composite + steps: + - run: | + IFS= read -r src_dir <<'EOF' + ${{ github.workspace }} + EOF + echo "$src_dir" + src_dir="$( cygpath -ua "$src_dir" )" + cd -- "$src_dir" + arch= + [ '${{ matrix.platform }}' == 'x86' ] && arch=-m32 + clang++ $arch -std=c++14 -o foo.exe foo.cpp + shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}' diff --git a/.github/actions/build-foo/action.yml b/.github/actions/build-foo/action.yml new file mode 100644 index 0000000..50f3f1e --- /dev/null +++ b/.github/actions/build-foo/action.yml @@ -0,0 +1,20 @@ +name: Build foo.exe +description: Build foo.exe +inputs: + platform: + description: Target platform + required: true +runs: + using: composite + steps: + - run: | + $flags = @() + if ('${{ matrix.platform }}' -eq 'x86') { + $flags += '-m32' + } + $flags += '-std=c++14','-o','foo.exe','foo.cpp' + if ('${{ runner.os }}' -eq 'Linux') { + $flags += '-lpthread' + } + clang++ $flags + shell: pwsh diff --git a/.github/actions/check-cc-cygwin/action.yml b/.github/actions/check-cc-cygwin/action.yml new file mode 100644 index 0000000..f536649 --- /dev/null +++ b/.github/actions/check-cc-cygwin/action.yml @@ -0,0 +1,25 @@ +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" + + if ! echo "$output" | grep -F -- "clang version"; 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..b297f72 --- /dev/null +++ b/.github/actions/check-cc/action.yml @@ -0,0 +1,22 @@ +name: Check cc/c++ +description: Check cc/c++ +runs: + using: composite + steps: + - run: | + function Check-Exe { + param( + [Parameter(Mandatory=$true)] + [string] $Exe + ) + + echo (Get-Command $Exe).Path + $output = & $Exe --version + echo $output + + $($output | Select-String -Pattern "clang version" -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..0e56b07 --- /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.exe) + $actual = $actual -join [Environment]::NewLine + + echo @" + Expected output: + $expected + "@ + echo @" + Actual output: + $actual + "@ + + $($actual -eq $expected) -or $(throw "Unexpected output!") + shell: pwsh |