name: Converter tests on: push: paths-ignore: - 'client/**' - 'doc/**' - 'packages/**' pull_request: paths-ignore: - 'client/**' - 'doc/**' - 'packages/**' schedule: # Run at midnight UTC every Tuesday - cron: '0 0 * * 2' env: GALAXY_TEST_RAISE_EXCEPTION_ON_HISTORYLESS_HDA: '1' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: name: Test runs-on: ubuntu-latest strategy: matrix: python-version: ['3.10'] steps: - if: github.event_name == 'schedule' run: | echo "GALAXY_CONFIG_OVERRIDE_METADATA_STRATEGY=extended" >> $GITHUB_ENV echo "GALAXY_CONFIG_OVERRIDE_OUTPUTS_TO_WORKING_DIRECTORY=true" >> $GITHUB_ENV - uses: actions/checkout@v6 with: path: 'galaxy root' persist-credentials: false - name: Clone galaxyproject/galaxy-test-data uses: actions/checkout@v6 with: repository: galaxyproject/galaxy-test-data path: galaxy-test-data persist-credentials: false - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@v7 - name: Move test data run: rsync -av --remove-source-files --exclude .git galaxy-test-data/ 'galaxy root/test-data/' - name: Install planemo run: uv tool install planemo - name: Determine converters to check run: | ls 'galaxy root'/lib/galaxy/datatypes/converters/*xml | grep -v -f 'galaxy root'/lib/galaxy/datatypes/converters/.tt_skip > tool_list.txt echo "Skipping checks for the following converters:" ls 'galaxy root'/lib/galaxy/datatypes/converters/*xml | grep -f 'galaxy root'/lib/galaxy/datatypes/converters/.tt_skip echo "Checking only the following converters:" cat tool_list.txt - name: Lint converters run: | mapfile -t TOOL_ARRAY < tool_list.txt planemo lint --skip CitationsMissing,HelpEmpty,HelpMissing --report_level warn "${TOOL_ARRAY[@]}" - name: Run tests run: | mapfile -t TOOL_ARRAY < tool_list.txt planemo test --biocontainers --galaxy_python_version ${{ matrix.python-version }} --galaxy_root 'galaxy root' "${TOOL_ARRAY[@]}" - uses: actions/upload-artifact@v7 if: failure() with: name: Converter test results (${{ matrix.python-version }}) path: tool_test_output.html