Skip to content

Fix test_all_plugins workflow #198

Fix test_all_plugins workflow

Fix test_all_plugins workflow #198

name: Test all plugins
on:
# To run this workflow, trigger it manually, or add the label 'test-all-plugins' to a pull request
pull_request:
types: [ labeled ]
workflow_dispatch:
concurrency:
group: test-plugins-${{ github.ref }}
cancel-in-progress: true
jobs:
get-plugins:
if: github.event.label.name == 'test-all-plugins' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- id: plugin_names
# Query npe2api for index of all plugins, select the keys, turn them into an array, select 10 random
# names from that array, convert the "one per line" output back into a string array
# save the string array of 10 plugins into the output from this step
run: |
set -eux
DATA=$(echo $(curl -s https://npe2api.vercel.app/api/plugins | jq -c 'keys' | jq -r '.[]' | shuf -n 10 | jq -R -s 'split("\n") | map(select(. != ""))'))
echo "plugins=$DATA" >> "$GITHUB_OUTPUT"
outputs:
plugins: ${{ steps.plugin_names.outputs.plugins }}
test_all:
needs: get-plugins
name: ${{ matrix.plugin }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
plugin: ${{ fromJson(needs.get-plugins.outputs.plugins) }}
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
- uses: tlambert03/setup-qt-libs@v1
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.10'
miniforge-variant: Miniforge3
miniforge-version: latest
use-mamba: true
- name: Install npe2
run: pip install -e .[testing]
- run: sudo apt-get install -y xvfb
- name: Run tests
run: xvfb-run --auto-servernum pytest tests/test_all_plugins.py -s -v --color=yes
env:
TEST_PACKAGE_NAME: ${{ matrix.plugin }}