gotesttools-gotestfmt-action/.github/workflows/selftest.yml
Yuri Norwood 19aa3d4945
Extend selftest workflow to multiple runners (#9)
* Extend selftest workflow to multiple runners

This should help catch errors like #4 and #8 by ensuring that gotestfmt can run on all the major OS runners for GitHub Actions.

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Separate windows step from *nix runners

This allows `bash` and `pwsh` syntax to be used separately to avoid having to write the test as a polyglot 😬

Also added `secrets.GITHUB_TOKEN` as a fallback in case the repo secret `secrets.GH_TOKEN` is not set up, e.g. in a fork.

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove `/tmp` directory for artifacts

On MacOS, this results in:

```
Error: Provided rootDirectory /tmp is not a valid directory
```

On Windows this results in:

```
Error: No files were found with the provided path: /tmp/gotest.windows.log. No artifacts will be uploaded.
```

Both seem to be unhappy with `/tmp`, since the workspace is implicitly cleaned up at the end of the workflow, there shouldn't be a need to specify `/tmp`.

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Name each workflow run of the matrix

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix artifact path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Simplify workflow by just using bash universally

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Apply suggestions from code review

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>
2022-11-04 10:00:11 +01:00

42 lines
927 B
YAML

on:
pull_request:
name: Self-test
jobs:
self-test:
strategy:
fail-fast: false
matrix:
os: ['ubuntu', 'macos'] # TODO: add windows
name: on ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.16
- name: Checkout
uses: actions/checkout@v2
- name: Install gotestfmt
uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run gotestfmt
working-directory: testdata
shell: bash
run: |
go test -json -v ./... 2>&1 | tee gotest.${{ matrix.os }}.log | gotestfmt
- name: Upload test log
uses: actions/upload-artifact@v3
if: always()
with:
name: test-log-${{ matrix.os }}
path: testdata/gotest.${{ matrix.os }}.log
if-no-files-found: error