diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 183196bb..942b43a9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,12 +27,12 @@ jobs: steps: - name: Add reaction if: ${{ github.event.client_payload.slash_command.command == 'run-all-tool-tests' }} - uses: peter-evans/create-or-update-comment@v4 + uses: peter-evans/create-or-update-comment@v5 with: token: ${{ secrets.PAT }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }} comment-id: ${{ github.event.client_payload.github.payload.comment.id }} - reaction-type: hooray + reactions: hooray - name: Set galaxy fork and branch id: get-fork-branch run: | @@ -43,7 +43,7 @@ jobs: - name: Determine latest commit in the Galaxy repo id: get-galaxy-sha run: echo "galaxy-head-sha=$(git ls-remote https://github.com/${{ steps.get-fork-branch.outputs.fork }}/galaxy refs/heads/${{ steps.get-fork-branch.outputs.branch }} | cut -f1)" >> $GITHUB_OUTPUT - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -56,9 +56,9 @@ jobs: # are not available as wheels, pip will build a wheel for them, which can be cached. - name: Install wheel run: pip install wheel - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 + persist-credentials: false - name: Fake a Planemo run to update cache and determine commit range, repositories, and chunks uses: galaxyproject/planemo-ci-action@v1 id: discover @@ -75,7 +75,7 @@ jobs: echo 'Using ${{ steps.discover.outputs.chunk-count }} chunks (${{ steps.discover.outputs.chunk-list }})' lint: - name: Check for missing containers + name: Lint tool-list needs: setup if: ${{ needs.setup.outputs.repository-list != '' || needs.setup.outputs.tool-list != '' }} runs-on: ubuntu-latest @@ -84,10 +84,10 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -101,10 +101,11 @@ jobs: id: lint with: mode: lint + fail-level: warn repository-list: ${{ needs.setup.outputs.repository-list }} tool-list: ${{ needs.setup.outputs.tool-list }} - additional-planemo-options: --biocontainers -s tests,output,inputs,help,general,command,citations,tool_xsd,xml_order,tool_urls,shed_metadata - - uses: actions/upload-artifact@v4 + additional-planemo-options: --biocontainers --skip tests,output,inputs,help,general,command,citations,tool_xsd,xml_order,tool_urls,shed_metadata,version_bumped + - uses: actions/upload-artifact@v5 if: ${{ failure() }} with: name: 'Tool linting output' @@ -131,12 +132,10 @@ jobs: ports: - 5432:5432 steps: - # checkout the repository - # and use it as the current working directory - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -163,7 +162,7 @@ jobs: galaxy-slots: ${{ steps.cpu-cores.outputs.count }} # Limit each test to 15 minutes test_timeout: 900 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 with: name: 'Tool test output ${{ matrix.chunk }}' path: upload @@ -182,10 +181,10 @@ jobs: # This job runs on Linux runs-on: ubuntu-latest steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v6 with: path: artifacts - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -200,10 +199,12 @@ jobs: with: mode: combine html-report: true - - uses: actions/upload-artifact@v4 + markdown-report: true + - uses: actions/upload-artifact@v5 with: name: 'All tool test results' path: upload + - run: cat upload/tool_test_output.md >> $GITHUB_STEP_SUMMARY - name: Create URL to the run output if: ${{ github.event.client_payload.slash_command.command == 'run-all-tool-tests' }} id: vars @@ -211,7 +212,7 @@ jobs: - name: Create comment if: ${{ github.event.client_payload.slash_command.command == 'run-all-tool-tests' }} - uses: peter-evans/create-or-update-comment@v4 + uses: peter-evans/create-or-update-comment@v5 with: token: ${{ secrets.PAT }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 31e5719c..6e23b8ad 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -59,7 +59,7 @@ jobs: - name: Determine latest commit in the Galaxy repo id: get-galaxy-sha run: echo "galaxy-head-sha=$(git ls-remote https://github.com/${{ env.GALAXY_FORK }}/galaxy refs/heads/${{ env.GALAXY_BRANCH }} | cut -f1)" >> $GITHUB_OUTPUT - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -80,9 +80,10 @@ jobs: run: pip install wheel - name: Install flake8 run: pip install flake8 flake8-import-order - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 + persist-credentials: false - name: Fake a Planemo run to update cache and determine commit range, repositories, and chunks uses: galaxyproject/planemo-ci-action@v1 id: discover @@ -113,10 +114,10 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -126,23 +127,24 @@ jobs: path: ~/.cache/pip key: pip_cache_py_${{ matrix.python-version }}_gxy_${{ needs.setup.outputs.galaxy-head-sha }} - - name: Set fail level for pull request - if: ${{ github.event_name == 'pull_request' }} - run: - echo "FAIL_LEVEL=warn" >> "$GITHUB_ENV" - - name: Set fail level for merge + - name: Set skip version check for push event (i.e. merge to main) if: ${{ github.event_name != 'pull_request' }} run: - echo "FAIL_LEVEL=error" >> "$GITHUB_ENV" + echo "EXTRA_SKIP=--skip version_bumped" >> "$GITHUB_ENV" + - name: Set no skip for pull_request events + if: ${{ github.event_name == 'pull_request' }} + run: + echo "EXTRA_SKIP=" >> "$GITHUB_ENV" - name: Planemo lint uses: galaxyproject/planemo-ci-action@v1 id: lint with: mode: lint - fail-level: ${{ env.FAIL_LEVEL }} + fail-level: warn repository-list: ${{ needs.setup.outputs.repository-list }} tool-list: ${{ needs.setup.outputs.tool-list }} - - uses: actions/upload-artifact@v4 + additional-planemo-options: ${{ env.EXTRA_SKIP }} + - uses: actions/upload-artifact@v5 if: ${{ failure() }} with: name: 'Tool linting output' @@ -159,10 +161,10 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -175,7 +177,7 @@ jobs: run: pip install flake8 flake8-import-order - name: Flake8 run: echo '${{ needs.setup.outputs.repository-list }}' | xargs -d '\n' flake8 --output-file pylint_report.txt --tee - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: ${{ failure() }} with: name: 'Python linting output' @@ -191,9 +193,9 @@ jobs: os: [ubuntu-24.04] r-version: ['release'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 + persist-credentials: false - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.r-version }} @@ -214,7 +216,7 @@ jobs: echo '${{ needs.setup.outputs.repository-list }}' | xargs -d '\n' -n 1 ./.github/styler.R --dry off git status git diff --exit-code | tee rlint_report.txt - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: ${{ failure() }} with: name: 'R linting output' @@ -226,9 +228,10 @@ jobs: if: ${{ github.event_name == 'pull_request' && needs.setup.outputs.repository-list != '' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 + persist-credentials: false - name: Check file sizes run: | touch file_size_report.txt @@ -241,7 +244,7 @@ jobs: cat file_size_report.txt exit 1 fi - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: ${{ failure() }} with: name: 'File size report' @@ -269,10 +272,10 @@ jobs: ports: - 5432:5432 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -304,8 +307,8 @@ jobs: chunk-count: ${{ needs.setup.outputs.chunk-count }} galaxy-slots: ${{ steps.cpu-cores.outputs.count }} # Limit each test to 15 minutes - test_timeout: 1800 - - uses: actions/upload-artifact@v4 + test_timeout: 900 + - uses: actions/upload-artifact@v5 with: name: 'Tool test output ${{ matrix.chunk }}' path: upload @@ -324,10 +327,10 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v6 with: path: artifacts - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -343,7 +346,7 @@ jobs: mode: combine html-report: true markdown-report: true - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 with: name: 'All tool test results' path: upload @@ -355,7 +358,8 @@ jobs: mode: check - name: Check if all test chunks succeeded run: | - NFILES=$(ls artifacts/ | grep "Tool test output" | wc -l) + ls artifacts/ + NFILES=$(find artifacts/ -name "tool_test_output.json" | wc -l) if [[ "${{ needs.setup.outputs.chunk-count }}" != "$NFILES" ]]; then exit 1 fi @@ -370,10 +374,10 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - fetch-depth: 1 - - uses: actions/setup-python@v5 + persist-credentials: false + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Cache .cache/pip @@ -401,22 +405,22 @@ jobs: 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' }} + if: ${{ always() && (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/gh-get-current-pr@2.2.0 + uses: 8BitJonny/gh-get-current-pr@4.0.0 id: getpr with: sha: ${{ github.event.after }} - name: Create comment - uses: peter-evans/create-or-update-comment@v4 + uses: peter-evans/create-or-update-comment@v5 with: token: ${{ secrets.PAT }} issue-number: ${{ steps.getpr.outputs.number }} body: | - Attention: deployment ${{ needs.deploy.result }}! + Deployment status: **${{ needs.deploy.result }}** https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/slash.yaml b/.github/workflows/slash.yaml index 838257cb..53a41229 100644 --- a/.github/workflows/slash.yaml +++ b/.github/workflows/slash.yaml @@ -8,7 +8,7 @@ jobs: steps: - name: Slash Command Dispatch if: github.repository_owner == 'galaxyproject' - uses: peter-evans/slash-command-dispatch@v3 + uses: peter-evans/slash-command-dispatch@v5 with: token: ${{ secrets.PAT }} commands: |