Skip to content

Test all plugins

Test all plugins #196

name: Test all plugins
on:
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
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 }}