Files
nicktrn 8e6eb4f6d8 GitHub workflow improvements (#1306)
* lint and action updates

* add custom image tag action

* remove publish infra bloat

* replace cancel action with native concurrency control

* ignore all docs changes for release trigger

* image action updates

* update publish trigger paths

* simplify semver checks

* make it possible to call publish

* add tests for custom action

* rename publish workflows

* call publish after successful package release

* fix inputs and published package parsing

* clarify image tag action errors

* move test action

* add test events

* add changesets action mock

* add docs checks

* add github action test readme

* fix docs check on push

* update action versions in docs

* cache npm for docs check

* pretend to fix bad docs link

* fix docs link

* Revert "fix docs link"

This reverts commit a7508f5d55.

* Revert "Revert "fix docs link""

This reverts commit ec642af3dc.

* improve caching

* disable automatic publishing after release

* limit docs checks to pushes to main and PRs

* fix broken links

* prevent word splitting and globbing

* use latest checkout action everywhere

* correctly detect prereleases as valid semver

* update to latest cache action
2024-09-23 15:14:34 +01:00
..
2024-09-23 15:14:34 +01:00

GitHub Action Tests

This directory contains necessary files to allow local testing of GitHub Actions workflows, composite actions, etc. You will need to install act to perform tests.

Workflow tests

Trigger specific workflow files by specifying their full path:

act -W .github/workflow/release.yml

You will likely need to override any custom runners we use, e.g. buildjet. For example:

override=catthehacker/ubuntu:act-latest

act -W .github/workflow/release.yml \
    -P buildjet-8vcpu-ubuntu-2204=$override

# override multiple images at the same time
act -W .github/workflow/release.yml \
    -P buildjet-8vcpu-ubuntu-2204=$override \
    -P buildjet-16vcpu-ubuntu-2204=$override

Trigger with specific event payloads to test pushing to branches or tags:

override=catthehacker/ubuntu:act-latest

# simulate push to main
act -W .github/workflow/publish.yml \
    -P buildjet-8vcpu-ubuntu-2204=$override \
    -P buildjet-16vcpu-ubuntu-2204=$override \
    -e .github/events/push-tag-main.json

# simulate a `build-` prefixed tag
act -W .github/workflow/publish.yml \
    -P buildjet-8vcpu-ubuntu-2204=$override \
    -P buildjet-16vcpu-ubuntu-2204=$override \
    -e .github/events/push-tag-buld.json

By default, act will send a push event. To trigger a different event:

# basic syntax
act <EVENT> ...

# simulate a pull request
act pull_request

# only trigger a specific workflow
act pull_request -W .github/workflow/pr_checks.yml

Composite action tests

The composite (custom) action tests can be run by triggering the test-actions workflow:

act -W .github/test/test-actions.yml

Helpful flags

  • --pull=false - perform fully offline tests if all images are already present
  • -j <job_name> - run the specified job only
  • -l push - list all workflows with push triggers