Skip to content

tests: Calculate boot duration #597

tests: Calculate boot duration

tests: Calculate boot duration #597

Workflow file for this run

name: "End-to-End Tests"
on:
push:
branches:
- master
- for-master
paths-ignore:
- '**.md'
jobs:
e2e-local:
name: "${{ matrix.name }} ${{ matrix.test }} ${{ matrix.testcase }}"
runs-on: ubuntu-latest
strategy:
matrix:
name: [
"altlinux",
"fedora",
"ubuntu",
]
test: [
"local",
]
testcase: [
"btrfs-subvol",
"efi-partition",
"efi-reqpartition",
"luks",
"luks+crypttab+noparam",
"luks+lukskey-noparam",
"luks+lukskey-plain",
"luks+lukskey-raw",
"luks-over-lvm",
"luks-over-raid1",
"lvm",
"lvm+luks",
"partition",
"partition+usr",
"pipeline",
"raid1",
"raid1+raid5",
"raid1-degraded",
"raid5",
"zfs-partition",
]
exclude:
- name: fedora
testcase: efi-partition
- name: fedora
testcase: efi-reqpartition
- name: fedora
testcase: raid1+raid5
- name: fedora
testcase: zfs-partition
- name: ubuntu
testcase: efi-partition
- name: ubuntu
testcase: efi-reqpartition
- name: altlinux
testcase: zfs-partition
fail-fast: false
#max-parallel: 6
steps:
- name: "Prepare Node"
run: |
for m in kvm kvm-amd kvm-intel; do sudo modprobe -v "$m" ||:; done
test -c /dev/kvm && sudo chmod -v 666 /dev/kvm ||:
- name: "Install Packages"
run: |
sudo apt-get -qq -y update
sudo apt-get -qq -y install git expect qemu-kvm ovmf
- name: "Checkout Repository"
uses: actions/checkout@v3
- name: "Checkout Submodules"
run: |
git submodule set-url external/busybox/upstream https://github.com/mirror/busybox
git submodule update --init --recursive
- name: "Build Sources"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-git
- name: "Build Sysimage"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-sysimage
- name: "Build Kickstart"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-kickstart
- name: "Build Other Tools"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-tools
- name: "Run Kickstart"
env:
QEMU_TIMEOUT: 40m
QEMU_MEMORY: 1G
QEMU_DISK_FORMAT: qcow2
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} run-kickstart
- name: "Run Services"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} run-services
- name: "Boot System"
env:
QEMU_TIMEOUT: 10m
QEMU_MEMORY: 1G
QEMU_DISK_FORMAT: qcow2
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} run-boot
- name: "Archive Metrics"
uses: actions/upload-artifact@v3
with:
name: "metrics-${{ matrix.name }}-${{ matrix.test }}-${{ matrix.testcase }}"
path: testing/status/artifact-*.txt
if-no-files-found: ignore
retention-days: 1
e2e-network:
name: "${{ matrix.name }} ${{ matrix.test }} ${{ matrix.testcase }}"
runs-on: ubuntu-latest
strategy:
matrix:
name: [
"altlinux",
]
test: [
"sshfs",
]
testcase: [
"sshfs-network-dhcp",
"sshfs-network-static1",
]
fail-fast: false
steps:
- name: "Prepare Node"
run: |
for m in kvm kvm-amd kvm-intel; do sudo modprobe -v "$m" ||:; done
test -c /dev/kvm && sudo chmod -v 666 /dev/kvm ||:
- name: "Install packages"
run: |
sudo apt-get -qq -y update
sudo apt-get -qq -y install git qemu-kvm
- name: "Checkout Repository"
uses: actions/checkout@v3
- name: "Checkout submodules"
run: |
git submodule set-url external/busybox/upstream https://github.com/mirror/busybox
git submodule update --init --recursive
- name: "Build Sources"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-git
- name: "Build Sysimage"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-sysimage
- name: "Build Other Tools"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} build-tools
- name: "Run Services"
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} run-services
- name: "Boot System"
env:
QEMU_TIMEOUT: 10m
QEMU_MEMORY: 1G
QEMU_DISK_FORMAT: qcow2
run: testing/testing-${{ matrix.name }}-${{ matrix.test }} test-root-${{ matrix.testcase }} run-boot
- name: "Archive Metrics"
uses: actions/upload-artifact@v3
with:
name: "metrics-${{ matrix.name }}-${{ matrix.test }}-${{ matrix.testcase }}"
path: testing/status/artifact-*.txt
if-no-files-found: ignore
retention-days: 1
boot-duration:
name: "Metrics"
needs: [ e2e-local, e2e-network ]
runs-on: ubuntu-latest
if: always()
steps:
- name: "Checkout Repository"
uses: actions/checkout@v3
- name: "Download Metrics"
uses: actions/download-artifact@v3
with:
path: artifacts
- name: "Summarize"
run: testing/generate-metrics artifacts > "$GITHUB_STEP_SUMMARY"
- name: "Remove Artifacts"
uses: geekyeggo/delete-artifact@v2
with:
name: metrics-*
failOnError: false