Annotate all existing WFs with edam topics and operations #2948
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# workflow level env vars cannot be used at the job level | |
# https://github.community/t/how-to-set-and-access-a-workflow-variable/17335/15 | |
name: Galaxy Workflow Tests for push and PR | |
on: | |
push: | |
paths-ignore: | |
- '**/*.md' | |
- 'scripts/**' | |
- 'website/**' | |
pull_request: | |
paths-ignore: | |
- '**/*.md' | |
- 'scripts/**' | |
- 'website/**' | |
env: | |
GITHUB_USER: iwc-workflows-bot | |
jobs: | |
setup: | |
name: Setup cache and determine changed repositories | |
uses: ./.github/workflows/setup.yml | |
with: | |
python-version-list: "[\"3.11\"]" | |
max-chunks: 4 | |
galaxy-fork: galaxyproject | |
galaxy-branch: release_24.1 | |
# Planemo lint the changed repositories | |
lint: | |
name: Lint workflows | |
needs: setup | |
if: needs.setup.outputs.repository-list != '' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.11'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache .cache/pip | |
uses: actions/cache@v4 | |
id: cache-pip | |
with: | |
path: ~/.cache/pip | |
key: pip_cache_py_${{ matrix.python-version }}_gxy_${{ needs.setup.outputs.galaxy-head-sha }} | |
- name: Install wheel | |
run: pip install wheel | |
- name: Planemo lint workflows | |
uses: galaxyproject/planemo-ci-action@v1 | |
id: lint | |
with: | |
mode: lint | |
workflows: true | |
repository-list: "${{ needs.setup.outputs.repository-list }}" | |
additional-planemo-options: --iwc | |
test: | |
name: Test workflows | |
needs: setup | |
if: needs.setup.outputs.repository-list != '' | |
uses: ./.github/workflows/test_workflows.yml | |
with: | |
galaxy-head-sha: ${{ needs.setup.outputs.galaxy-head-sha }} | |
chunk-count: ${{ fromJSON(needs.setup.outputs.chunk-count) }} | |
chunk-list: ${{ needs.setup.outputs.chunk-list }} | |
python-version-list: "[\"3.11\"]" | |
repository-list: ${{ needs.setup.outputs.repository-list }} | |
galaxy-fork: galaxyproject | |
galaxy-branch: release_24.1 | |
check-outputs: false | |
combine_outputs: | |
# same as tool step | |
name: Combine chunked test results | |
needs: [setup, test] | |
strategy: | |
matrix: | |
python-version: ['3.11'] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache .cache/pip | |
uses: actions/cache@v4 | |
id: cache-pip | |
with: | |
path: ~/.cache/pip | |
key: pip_cache_py_${{ matrix.python-version }}_gxy_{{ needs.setup.outputs.galaxy-head-sha }} | |
- name: Combine outputs | |
uses: galaxyproject/planemo-ci-action@v1 | |
id: combine | |
with: | |
mode: combine | |
html-report: true | |
markdown-report: true | |
- run: cat upload/tool_test_output.md >> $GITHUB_STEP_SUMMARY | |
- name: Save PR number | |
run: echo ${{ github.event.number }} > ./upload/NR | |
- name: Debug PR number | |
run: | | |
cat ./upload/NR | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: 'All tool test results' | |
path: upload | |
- name: Check outputs | |
uses: galaxyproject/planemo-ci-action@v1 | |
id: check | |
with: | |
mode: check | |
# deploy workflows to organization | |
deploy: | |
name: Deploy | |
needs: [setup,test,combine_outputs] | |
strategy: | |
matrix: | |
python-version: ['3.11'] | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' && github.repository_owner == 'galaxyproject' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache .cache/pip | |
uses: actions/cache@v4 | |
id: cache-pip | |
with: | |
path: ~/.cache/pip | |
key: pip_cache_py_${{ matrix.python-version }}_gxy_{{ needs.setup.outputs.galaxy-head-sha }} | |
- name: Install requirements for gen_crates.py | |
run: pip install -r workflows/requirements.txt | |
- name: Generate RO-Crate metadata for workflow repositories | |
run: python workflows/gen_crates.py workflows | |
- name: Set git user | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "$GITHUB_USER" | |
git config --global init.defaultBranch main | |
- uses: fusion-engineering/setup-git-credentials@v2 | |
with: | |
credentials: 'https://${{ env.GITHUB_USER }}:${{ secrets.IWC_WORKFLOWS_BOT_TOKEN }}@github.com/' | |
- name: Update or create repositories in github namespace | |
uses: galaxyproject/planemo-ci-action@v1 | |
with: | |
mode: deploy | |
repository-list: ${{ needs.setup.outputs.repository-list }} | |
workflows: true | |
workflow-namespace: iwc-workflows | |
github-token: ${{ secrets.IWC_WORKFLOWS_BOT_TOKEN }} | |
deploy-report: | |
name: Report deploy status | |
needs: [deploy] | |
if: ${{ always() && needs.deploy.result != 'success' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' ) && github.repository_owner == 'galaxyproject' }} | |
runs-on: ubuntu-latest | |
steps: | |
# report to the PR if deployment failed | |
- name: Get PR object | |
uses: 8BitJonny/[email protected] | |
id: getpr | |
with: | |
sha: ${{ github.event.after }} | |
- name: Create comment | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
token: ${{ secrets.PAT }} | |
issue-number: ${{ steps.getpr.outputs.number }} | |
body: | | |
Attention: deployment ${{ needs.deploy.result }}! | |
https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
determine-success: | |
name: Check workflow success | |
needs: [setup, lint, combine_outputs] | |
if: ${{ always() && github.ref != 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check status | |
if: ${{ needs.combine_outputs.result != 'skipped' && (needs.lint.result != 'success' || needs.combine_outputs.result != 'success') }} | |
run: exit 1 |