Allow opt-in of zvol blocks in special class #1875
Workflow file for this run
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
name: zfs-qemu | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
include_stream9: | |
type: boolean | |
required: false | |
default: false | |
description: 'Test on CentOS 9 stream' | |
include_stream10: | |
type: boolean | |
required: false | |
default: false | |
description: 'Test on CentOS 10 stream' | |
fedora_kernel_ver: | |
type: string | |
required: false | |
default: "" | |
description: "(optional) Experimental kernel version to install on Fedora (like '6.14' or '6.13.3-0.rc3')" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
test-config: | |
name: Setup | |
runs-on: ubuntu-24.04 | |
outputs: | |
test_os: ${{ steps.os.outputs.os }} | |
ci_type: ${{ steps.os.outputs.ci_type }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Generate OS config and CI type | |
id: os | |
run: | | |
FULL_OS='["almalinux8", "almalinux9", "debian11", "debian12", "fedora40", "fedora41", "fedora42", "freebsd13-4r", "freebsd14-2s", "freebsd15-0c", "ubuntu20", "ubuntu22", "ubuntu24"]' | |
QUICK_OS='["almalinux8", "almalinux9", "debian12", "fedora42", "freebsd14-2r", "ubuntu24"]' | |
# determine CI type when running on PR | |
ci_type="full" | |
if ${{ github.event_name == 'pull_request' }}; then | |
head=${{ github.event.pull_request.head.sha }} | |
base=${{ github.event.pull_request.base.sha }} | |
ci_type=$(python3 .github/workflows/scripts/generate-ci-type.py $head $base) | |
fi | |
if [ "$ci_type" == "quick" ]; then | |
os_selection="$QUICK_OS" | |
else | |
os_selection="$FULL_OS" | |
fi | |
if [ ${{ github.event.inputs.fedora_kernel_ver }} != "" ] ; then | |
# They specified a custom kernel version for Fedora. Use only | |
# Fedora runners. | |
os_json=$(echo ${os_selection} | jq -c '[.[] | select(startswith("fedora"))]') | |
else | |
# Normal case | |
os_json=$(echo ${os_selection} | jq -c) | |
fi | |
# Add optional runners | |
if [ "${{ github.event.inputs.include_stream9 }}" == 'true' ]; then | |
os_json=$(echo $os_json | jq -c '. += ["centos-stream9"]') | |
fi | |
if [ "${{ github.event.inputs.include_stream10 }}" == 'true' ]; then | |
os_json=$(echo $os_json | jq -c '. += ["centos-stream10"]') | |
fi | |
echo $os_json | |
echo "os=$os_json" >> $GITHUB_OUTPUT | |
echo "ci_type=$ci_type" >> $GITHUB_OUTPUT | |
qemu-vm: | |
name: qemu-x86 | |
needs: [ test-config ] | |
strategy: | |
fail-fast: false | |
matrix: | |
# rhl: almalinux8, almalinux9, centos-stream9, fedora40, fedora41 | |
# debian: debian11, debian12, ubuntu20, ubuntu22, ubuntu24 | |
# misc: archlinux, tumbleweed | |
# FreeBSD variants of 2024-12: | |
# FreeBSD Release: freebsd13-4r, freebsd14-2r | |
# FreeBSD Stable: freebsd13-4s, freebsd14-2s | |
# FreeBSD Current: freebsd15-0c | |
os: ${{ fromJson(needs.test-config.outputs.test_os) }} | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup QEMU | |
timeout-minutes: 10 | |
run: .github/workflows/scripts/qemu-1-setup.sh | |
- name: Start build machine | |
timeout-minutes: 10 | |
run: .github/workflows/scripts/qemu-2-start.sh ${{ matrix.os }} | |
- name: Install dependencies | |
timeout-minutes: 20 | |
run: .github/workflows/scripts/qemu-3-deps.sh ${{ matrix.os }} ${{ github.event.inputs.fedora_kernel_ver }} | |
- name: Build modules | |
timeout-minutes: 30 | |
run: .github/workflows/scripts/qemu-4-build.sh --poweroff --enable-debug ${{ matrix.os }} | |
- name: Setup testing machines | |
timeout-minutes: 5 | |
run: .github/workflows/scripts/qemu-5-setup.sh | |
- name: Run tests | |
timeout-minutes: 270 | |
run: .github/workflows/scripts/qemu-6-tests.sh | |
env: | |
CI_TYPE: ${{ needs.test-config.outputs.ci_type }} | |
- name: Prepare artifacts | |
if: always() | |
timeout-minutes: 10 | |
run: .github/workflows/scripts/qemu-7-prepare.sh | |
- uses: actions/upload-artifact@v4 | |
id: artifact-upload | |
if: always() | |
with: | |
name: Logs-functional-${{ matrix.os }} | |
path: /tmp/qemu-${{ matrix.os }}.tar | |
if-no-files-found: ignore | |
- name: Test Summary | |
if: always() | |
run: .github/workflows/scripts/qemu-8-summary.sh '${{ steps.artifact-upload.outputs.artifact-url }}' | |
cleanup: | |
if: always() | |
name: Cleanup | |
runs-on: ubuntu-latest | |
needs: [ qemu-vm ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- uses: actions/download-artifact@v4 | |
- name: Generating summary | |
run: .github/workflows/scripts/qemu-9-summary-page.sh | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 2 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 3 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 4 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 5 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 6 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 7 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 8 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 9 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 10 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 11 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 12 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 13 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 14 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 15 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 16 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 17 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 18 | |
- name: Generating summary... | |
run: .github/workflows/scripts/qemu-9-summary-page.sh 19 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Summary Files | |
path: out-* |