Skip to content

Run kdevops CI Workflow - Reusable #19

Run kdevops CI Workflow - Reusable

Run kdevops CI Workflow - Reusable #19

Workflow file for this run

# SPDX-License-Identifier: GPL-2.0
---
name: Run Kdevops CI Workflow
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
ci_workflow:
description: "CI Workflow"
required: true
default: 'blktests_nvme'
type: choice
options:
- blktests
- blktests_block
- blktests_loop
- blktests_meta
- blktests_nbd
- blktests_nvme
- blktests_nvmemp
- blktests_scsi
- blktests_srp
- blktests_zbd
jobs:
generate_ref:
name: Determine Linux kernel Git Reference
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
./scripts/github_output.sh kernel_tree "$kernel_tree"
- 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
./scripts/github_output.sh moniker "$moniker"
- 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 }}")
./scripts/github_output.sh kernel_ref "$kernel_ref"
setup:
needs: generate_ref
strategy:
matrix:
ci_workflow:
- blktests_block
- blktests_nvme
- blktests_scsi
- tmpfs_default
- tmpfs_nohuge
uses: ./.github/workflows/setup.yml
with:
kernel_ref: ${{ needs.generate_ref.outputs.kernel_ref || 'master' }}
kernel_tree: ${{ needs.generate_ref.outputs.kernel_tree || 'linux' }}
ci_workflow: ${{ inputs.ci_workflow || github.ref_name }}
secrets: inherit
run-tests:
needs: setup
uses: ./.github/workflows/tests.yml
strategy:
matrix:
ci_workflow:
- blktests_block
- blktests_nvme
- blktests_scsi
- tmpfs_default
- tmpfs_nohuge
with:
ci_workflow: ${{ inputs.ci_workflow || github.ref_name }}
secrets: inherit
archive:
needs: run-tests
uses: ./.github/workflows/archive.yml
strategy:
matrix:
ci_workflow:
- blktests_block
- blktests_nvme
- blktests_scsi
- tmpfs_default
- tmpfs_nohuge
with:
ci_workflow: ${{ inputs.ci_workflow || github.ref_name }}
secrets: inherit
cleanup:
needs: [setup, run-tests, archive]
uses: ./.github/workflows/cleanup.yml
strategy:
matrix:
ci_workflow:
- blktests_block
- blktests_nvme
- blktests_scsi
- tmpfs_default
- tmpfs_nohuge
secrets: inherit