.github/workflows: ensure cleanup is always run #19
This file contains hidden or 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
| # SPDX-License-Identifier: GPL-2.0 | |
| --- | |
| name: Run blktests kdevops CI tests | |
| on: | |
| schedule: | |
| - cron: '0 14 * * *' | |
| # - cron: '*/20 * * * *' | |
| push: | |
| branches: ['**'] | |
| pull_request: | |
| branches: ['**'] | |
| workflow_dispatch: # Allow manual triggering | |
| inputs: | |
| kernel_tree: | |
| description: "Linux kernel tree to use" | |
| required: true | |
| default: 'linux' | |
| type: choice | |
| options: | |
| - linux | |
| - linux-next | |
| - linux-stable | |
| kernel_ref: | |
| description: "Linux tree git reference (branch/tag/commit-id)" | |
| required: true | |
| default: "master" | |
| type: string | |
| jobs: | |
| generate_ref: | |
| name: Determine kernel_ref value | |
| runs-on: [self-hosted] | |
| outputs: | |
| kernel_ref: ${{ steps.set_kernel_ref.outputs.kernel_ref }} | |
| kernel_tree: ${{ steps.set_kernel_tree.outputs.kernel_tree }} | |
| moniker: ${{ steps.set_moniker.outputs.moniker }} | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Set kernel_tree (default if not provided) | |
| id: set_kernel_tree | |
| run: | | |
| kernel_tree="${{ github.event.inputs.kernel_tree }}" | |
| if [ -z "$kernel_tree" ]; then | |
| kernel_tree="linux" | |
| fi | |
| echo "kernel_tree=$kernel_tree" >> $GITHUB_OUTPUT | |
| - name: Determine moniker | |
| id: set_moniker | |
| run: | | |
| case "${{ steps.set_kernel_tree.outputs.kernel_tree }}" in | |
| linux) moniker="mainline" ;; | |
| linux-stable) moniker="stable" ;; | |
| linux-next) moniker="linux-next" ;; | |
| *) echo "Unknown kernel_tree"; exit 1 ;; | |
| esac | |
| echo "moniker=$moniker" >> $GITHUB_OUTPUT | |
| - name: Set kernel_ref based on trigger type | |
| id: set_kernel_ref | |
| run: | | |
| kernel_ref=$(./scripts/korg-releases.py --moniker "${{ steps.set_moniker.outputs.moniker }}") | |
| echo "kernel_ref=$kernel_ref" >> $GITHUB_OUTPUT | |
| setup: | |
| needs: generate_ref | |
| uses: ./.github/workflows/kdevops-init.yml | |
| with: | |
| kernel_ref: ${{ needs.generate_ref.outputs.kernel_ref || 'master' }} | |
| kernel_tree: ${{ needs.generate_ref.outputs.kernel_tree || 'linux' }} | |
| secrets: inherit | |
| run-tests: | |
| needs: setup | |
| name: Run CI tests | |
| runs-on: [self-hosted, Linux, X64] | |
| steps: | |
| - name: Run CI tests | |
| run: | | |
| cd kdevops | |
| CI_REPO="${{ github.ref_name }}" make ci-test | |
| echo -e "Kernel tests results:\n" > ci.commit_extra | |
| tail -n 1 workflows/blktests/results/last-run/*/*.dmesg.log >> ci.commit_extra | |
| echo -e "\n\n" >> ci.commit_extra | |
| echo -e "Userspace test results:\n" >> ci.commit_extra | |
| tail -n 1 workflows/blktests/results/last-run/*/*.userspace.log >> ci.commit_extra | |
| echo -e "\n\n" >> ci.commit_extra | |
| if grep -i -q "fail" ci.commit_extra ; then | |
| echo "fail" > ci.result | |
| else | |
| echo "ok" > ci.result | |
| fi | |
| archive: | |
| needs: run-tests | |
| uses: ./.github/workflows/kdevops-archive.yml | |
| secrets: inherit | |
| cleanup: | |
| name: Cleanup | |
| needs: [setup, run-tests, archive] | |
| runs-on: [self-hosted, Linux, X64] | |
| if: always() | |
| steps: | |
| - name: Run kdevops make destroy | |
| run: | | |
| cd kdevops | |
| make destroy | |
| cd .. | |
| rm -rf kdevops |