Skip to content

Commit 066e9ff

Browse files
committed
GitHub Actions: moved the action.yml files to validate/ and acceptance/ at the repo root for shorter references
1 parent 1394343 commit 066e9ff

8 files changed

Lines changed: 30 additions & 21 deletions

File tree

‎.github/actions/README.md‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# pluginval GitHub Actions
22

33
Two composite actions for using pluginval from another repository's workflows.
4+
Their `action.yml` files are in `validate/` and `acceptance/` at the repository
5+
root, which keeps the references short; the scripts they run are in this directory.
46
Both run on Linux, macOS and Windows runners, download the matching pluginval
57
release (or use a binary you give them), run everything they are given and fail
68
the step if anything failed.
@@ -18,7 +20,7 @@ On Linux the plugin is run under `xvfb-run` when there is no `DISPLAY` (install
1820
Validates one or more plugins.
1921

2022
```yaml
21-
- uses: Tracktion/pluginval/.github/actions/validate@v2
23+
- uses: Tracktion/pluginval/validate@v2
2224
with:
2325
plugins: |
2426
build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3
@@ -47,7 +49,7 @@ Runs the [acceptance tests](../../docs/Acceptance%20testing.md) for every config
4749
plugin.
4850

4951
```yaml
50-
- uses: Tracktion/pluginval/.github/actions/acceptance@v2
52+
- uses: Tracktion/pluginval/acceptance@v2
5153
with:
5254
config-dir: tests/acceptance
5355
plugin: build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3
@@ -85,7 +87,7 @@ Both actions set:
8587
To keep the reports and diffs from a failed run:
8688

8789
```yaml
88-
- uses: Tracktion/pluginval/.github/actions/acceptance@v2
90+
- uses: Tracktion/pluginval/acceptance@v2
8991
id: acceptance
9092
with:
9193
config-dir: tests/acceptance
@@ -116,7 +118,7 @@ jobs:
116118
steps:
117119
# ... build the plugin ...
118120
119-
- uses: Tracktion/pluginval/.github/actions/validate@v2
121+
- uses: Tracktion/pluginval/validate@v2
120122
with:
121123
plugins: build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3
122124
report-dir: pluginval-reports

‎.github/workflows/acceptance.yml‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
working-directory: build
7070
run: ctest -C Release --output-on-failure -R pluginval.acceptance
7171

72-
# The reusable actions in .github/actions, run against the build above
72+
# The reusable actions (validate/ and acceptance/), run against the build above
7373
# (pluginval-path) rather than a downloaded release.
7474
- name: Prepare action fixtures
7575
id: fixtures
@@ -100,7 +100,7 @@ jobs:
100100
101101
- name: "Action: validate"
102102
id: validate
103-
uses: ./.github/actions/validate
103+
uses: ./validate
104104
with:
105105
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
106106
args: --skip-gui-tests
@@ -109,7 +109,7 @@ jobs:
109109
- name: "Action: validate (missing plugin, expected to fail)"
110110
id: validate-missing
111111
continue-on-error: true
112-
uses: ./.github/actions/validate
112+
uses: ./validate
113113
with:
114114
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
115115
args: --skip-gui-tests
@@ -119,7 +119,7 @@ jobs:
119119
120120
- name: "Action: acceptance"
121121
id: acceptance
122-
uses: ./.github/actions/acceptance
122+
uses: ./acceptance
123123
with:
124124
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
125125
config-dir: build/action-fixtures/good
@@ -128,7 +128,7 @@ jobs:
128128
- name: "Action: acceptance (bad configs, expected to fail)"
129129
id: acceptance-bad
130130
continue-on-error: true
131-
uses: ./.github/actions/acceptance
131+
uses: ./acceptance
132132
with:
133133
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
134134
config-dir: build/action-fixtures/bad
@@ -137,15 +137,15 @@ jobs:
137137
- name: "Action: acceptance (missing reference, expected to fail)"
138138
id: acceptance-missing
139139
continue-on-error: true
140-
uses: ./.github/actions/acceptance
140+
uses: ./acceptance
141141
with:
142142
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
143143
config-dir: build/action-fixtures/missing
144144
plugin: build/tests/test_plugins/tone_generator/pluginval_tone_generator_artefacts/Release/VST3/pluginval Tone Generator.vst3
145145

146146
- name: "Action: acceptance (record the missing reference)"
147147
id: acceptance-record
148-
uses: ./.github/actions/acceptance
148+
uses: ./acceptance
149149
with:
150150
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
151151
config-dir: build/action-fixtures/missing

‎CHANGELIST.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
- Added `--junit-xml <file>` and `--json-results <file>` to both `pluginval validate` and `pluginval test` to write machine-readable reports for CI (also settable as `JUNIT_XML` / `JSON_RESULTS`). A report that can't be written fails the run. See `docs/Adding pluginval to CI.md`
77
- Added acceptance testing: `pluginval test <config.json>` renders a plugin with a known state, input (audio/MIDI) and optional playhead, then compares the output against a checked-in reference WAV, exiting `0` on a match and `1` on a mismatch (with a diff WAV). Use `--record-missing` to record new references. See `docs/Acceptance testing.md`
88
- Added `--plugin <plugin>` to `pluginval test` to run a config against a given plugin instead of the one it names (the config's `plugin` can then be omitted)
9-
- Added two GitHub Actions for use from other repositories: `Tracktion/pluginval/.github/actions/validate` (validate a list of plugins) and `.../acceptance` (run every acceptance config in a directory against a built plugin). See `.github/actions/README.md`
9+
- Added two GitHub Actions for use from other repositories: `Tracktion/pluginval/validate` (validate a list of plugins) and `Tracktion/pluginval/acceptance` (run every acceptance config in a directory against a built plugin). See `.github/actions/README.md`
1010
- Restructured the command line into subcommands: `pluginval validate [options] <plugin>` (the default), `pluginval run-tests` and `pluginval strictness-help [level]`. The plugin path is now a positional argument of `validate`
1111
- **Deprecated:** the flat flags `--validate <plugin>`, `--run-tests` and `--strictness-help [level]` still work as aliases (with a one-line notice) but will be removed in a future version. `pluginval <plugin>` remains a silent shorthand for `validate`
1212
- Replaced the hand-rolled command-line parser with CLI11 and a single JSON-based settings pipeline

‎CLAUDE.md‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,10 @@ pluginval/
122122
│ ├── mac_tests/ # macOS-specific tests
123123
│ └── windows_tests.bat # Windows test scripts
124124
├── .github/
125-
│ ├── actions/ # Composite actions for other repos: validate/, acceptance/, common/ (see README.md there)
125+
│ ├── actions/ # Scripts + README for the composite actions: validate/, acceptance/, common/
126126
│ └── workflows/ # build.yaml (release build), acceptance.yml (acceptance self-tests + action dogfooding)
127+
├── validate/action.yml # Composite action: Tracktion/pluginval/validate (runs .github/actions/validate/validate.sh)
128+
├── acceptance/action.yml # Composite action: Tracktion/pluginval/acceptance (runs .github/actions/acceptance/acceptance.sh)
127129
├── docs/ # Documentation
128130
│ ├── Adding pluginval to CI.md
129131
│ ├── Command line options.md
@@ -530,16 +532,19 @@ add_pluginval_tests(MyPluginTarget
530532

531533
### GitHub Actions
532534

533-
Two composite actions for other repositories live in `.github/actions/`
534-
(documented in `.github/actions/README.md`):
535+
Two composite actions for other repositories, referenced as
536+
`Tracktion/pluginval/validate@v2` and `Tracktion/pluginval/acceptance@v2`. Only
537+
their `action.yml` files sit at the repo root (`validate/`, `acceptance/`), to
538+
keep those references short; the scripts and `README.md` are in `.github/actions/`:
535539

536540
- `validate/` - validates a newline-separated list of plugins / globs / AU ids.
537541
- `acceptance/` - runs `pluginval test` for every `*.json` (recursively, skipping
538542
the `*.wav.json` manifests and rejecting array configs) under a directory,
539543
optionally passing one built plugin via `--plugin`.
540544

541545
Each `action.yml` only maps its inputs to `INPUT_*` environment variables and
542-
runs its sibling bash script (`validate.sh` / `acceptance.sh`); shared helpers
546+
runs its bash script (`.github/actions/validate/validate.sh` / `acceptance/acceptance.sh`,
547+
found relative to `$GITHUB_ACTION_PATH`); shared helpers
543548
(downloading the release or using `pluginval-path`, the Linux `xvfb-run` wrapper)
544549
are in `common/common.sh`. The scripts must stay bash 3.2 compatible (macOS
545550
runners) and can be run locally by setting the `INPUT_*` variables. They run
@@ -601,7 +606,7 @@ Run internal tests via CLI:
601606
4. Tag: `git tag -a vX.Y.Z -m "X.Y.Z release"`
602607
5. Push: `git push --tags`
603608
6. Once the release binaries are published, bump the `pluginval-version` default
604-
in both `.github/actions/*/action.yml` (and the README tables) to the new tag
609+
in `validate/action.yml` and `acceptance/action.yml` (and the README tables) to the new tag
605610

606611
A tag with a hyphen (e.g. `v2.0.0-beta1`) is published as a pre-release, so it
607612
doesn't become the "latest" release that the download URLs in the docs point at.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,5 @@ runs:
5252
INPUT_REPORT_DIR: ${{ inputs.report-dir }}
5353
INPUT_PLUGINVAL_VERSION: ${{ inputs.pluginval-version }}
5454
INPUT_PLUGINVAL_PATH: ${{ inputs.pluginval-path }}
55-
run: bash "$GITHUB_ACTION_PATH/acceptance.sh"
55+
# The scripts live in .github/actions so only this file sits at the repo root.
56+
run: bash "$GITHUB_ACTION_PATH/../.github/actions/acceptance/acceptance.sh"

‎docs/Acceptance testing.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ On GitHub Actions, the `acceptance` action runs every config in a directory
104104
(recursively) against a built plugin:
105105

106106
```yaml
107-
- uses: Tracktion/pluginval/.github/actions/acceptance@v2
107+
- uses: Tracktion/pluginval/acceptance@v2
108108
with:
109109
config-dir: tests/acceptance
110110
plugin: build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3

‎docs/Adding pluginval to CI.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ There a couple of different ways this can be done but the simplest is as follows
1313
On GitHub Actions the simplest route is the `validate` action, which downloads pluginval, validates each plugin and fails the job if any fail:
1414

1515
```yaml
16-
- uses: Tracktion/pluginval/.github/actions/validate@v2
16+
- uses: Tracktion/pluginval/validate@v2
1717
with:
1818
plugins: |
1919
build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ runs:
4949
INPUT_REPORT_DIR: ${{ inputs.report-dir }}
5050
INPUT_PLUGINVAL_VERSION: ${{ inputs.pluginval-version }}
5151
INPUT_PLUGINVAL_PATH: ${{ inputs.pluginval-path }}
52-
run: bash "$GITHUB_ACTION_PATH/validate.sh"
52+
# The scripts live in .github/actions so only this file sits at the repo root.
53+
run: bash "$GITHUB_ACTION_PATH/../.github/actions/validate/validate.sh"

0 commit comments

Comments
 (0)