aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/.github/actions
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2021-07-02 13:58:17 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2021-07-02 14:37:36 +0300
commit471c576fd4545f1b9f5e12f54f002e45fc0225b9 (patch)
treef239c4c71c5ee3c626e5a1892c38b7ffbe1729ee /.github/actions
parenttest support of multiple versions (diff)
downloadsetup-gcc-471c576fd4545f1b9f5e12f54f002e45fc0225b9.tar.gz
setup-gcc-471c576fd4545f1b9f5e12f54f002e45fc0225b9.zip
workflows/test: factor out steps + refactoring
Diffstat (limited to '')
-rw-r--r--.github/actions/build-foo-cygwin/action.yml20
-rw-r--r--.github/actions/build-foo/action.yml20
-rw-r--r--.github/actions/check-cc-cygwin/action.yml21
-rw-r--r--.github/actions/check-cc/action.yml16
-rw-r--r--.github/actions/run-foo/action.yml20
5 files changed, 97 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..e1ae57c
--- /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
+ g++ $arch -std=c++14 -o foo 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..c1a6fdd
--- /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','foo.cpp'
+ if ('${{ runner.os }}' -eq 'Linux') {
+ $flags += '-lpthread'
+ }
+ g++ $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..b0926cc
--- /dev/null
+++ b/.github/actions/check-cc-cygwin/action.yml
@@ -0,0 +1,21 @@
+name: Check cc/c++
+description: Check cc/c++ (on Cygwin)
+runs:
+ using: composite
+ steps:
+ # Is this really the most stable piece of `gcc --version` output?
+ - run: |
+ check_tool() {
+ local exe
+ for exe; do
+ output="$( "$exe" --version )"
+ echo "$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..d2b98ed
--- /dev/null
+++ b/.github/actions/check-cc/action.yml
@@ -0,0 +1,16 @@
+name: Check cc/c++
+description: Check cc/c++
+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")
+ shell: pwsh
diff --git a/.github/actions/run-foo/action.yml b/.github/actions/run-foo/action.yml
new file mode 100644
index 0000000..9e53df5
--- /dev/null
+++ b/.github/actions/run-foo/action.yml
@@ -0,0 +1,20 @@
+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
+
+ $($actual -eq $expected) -or $(throw @"
+ Unexpected output:
+ $actual
+ "@)
+ shell: pwsh