Skip to content

Commit aabea03

Browse files
authored
GitHub Actions: document DISABLED_TESTS and count the dogfood plugins (#195)
1 parent c3cbc1f commit aabea03

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

‎.github/actions/README.md‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,23 @@ Every `pluginval validate` option can also be set as an environment variable on
4242
the step (e.g. `env: { TIMEOUT_MS: 60000 }`), which is the way to pass values
4343
containing spaces.
4444

45+
To skip tests, set `DISABLED_TESTS` to their names, comma-separated (or to an
46+
absolute path to a file listing one name per line). Test names contain spaces,
47+
so they can't be given as `--disabled-tests` in `args`. For example, at strictness
48+
8 and above "Discrete parameter state restoration" fails for plugins using
49+
`juce::AudioParameterBool`, until [JUCE snaps its value to 0 or 1](https://forum.juce.com/t/pluginval-can-set-an-audioparameterbools-to-odd-values/50971):
50+
51+
```yaml
52+
- uses: Tracktion/pluginval/validate@v2
53+
env:
54+
DISABLED_TESTS: Discrete parameter state restoration
55+
with:
56+
plugins: build/MyPlugin_artefacts/Release/VST3/MyPlugin.vst3
57+
strictness-level: 10
58+
```
59+
60+
Run `pluginval strictness-help <level>` to list the test names.
61+
4562
## acceptance
4663

4764
Runs the [acceptance tests](../../docs/Acceptance%20testing.md) for every config

‎.github/workflows/acceptance.yml‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ jobs:
8181
*) echo "pluginval=build/pluginval_artefacts/Release/pluginval" >> "$GITHUB_OUTPUT" ;;
8282
esac
8383
84+
# Every dogfood plugin is validated, so count them rather than hard-coding
85+
# the number the check step expects.
86+
shopt -s nullglob
87+
glob='build/tests/test_plugins/*/*_artefacts/Release/VST3/*.vst3'
88+
plugins=( $glob )
89+
echo "plugin-glob=$glob" >> "$GITHUB_OUTPUT"
90+
echo "plugin-count=${#plugins[@]}" >> "$GITHUB_OUTPUT"
91+
8492
# Tone generator configs with the plugin removed, so it has to come from
8593
# the action's "plugin" input. One is nested and a reference manifest is
8694
# added, to check the recursion and that manifests aren't run as configs.
@@ -104,7 +112,7 @@ jobs:
104112
with:
105113
pluginval-path: ${{ steps.fixtures.outputs.pluginval }}
106114
args: --skip-gui-tests
107-
plugins: build/tests/test_plugins/*/*_artefacts/Release/VST3/*.vst3
115+
plugins: ${{ steps.fixtures.outputs.plugin-glob }}
108116

109117
- name: "Action: validate (missing plugin, expected to fail)"
110118
id: validate-missing
@@ -156,7 +164,8 @@ jobs:
156164
shell: bash
157165
run: |
158166
check() { echo "$1: got '$2', expected '$3'"; [ "$2" = "$3" ] || exit 1; }
159-
check "validate passed" "${{ steps.validate.outputs.passed }}" 4
167+
[ "${{ steps.fixtures.outputs.plugin-count }}" -gt 0 ] || { echo "No dogfood plugins found"; exit 1; }
168+
check "validate passed" "${{ steps.validate.outputs.passed }}" "${{ steps.fixtures.outputs.plugin-count }}"
160169
check "validate failed" "${{ steps.validate.outputs.failed }}" 0
161170
check "validate-missing outcome" "${{ steps.validate-missing.outcome }}" failure
162171
check "validate-missing passed" "${{ steps.validate-missing.outputs.passed }}" 1

0 commit comments

Comments
 (0)