Skip to content

Workflow (by @byron-marohn via pull_request) #5

Workflow (by @byron-marohn via pull_request)

Workflow (by @byron-marohn via pull_request) #5

Workflow file for this run

---
# SPDX-FileCopyrightText: (C) 2025 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
name: "Kubevirt: Build, Trivy & ClamAV Scan"
run-name: "Workflow (by @${{ github.actor }} via ${{ github.event_name }})"
# Only run at most 1 workflow concurrently per PR, unlimited for branches
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
kubevirt-build-and-scan:

Check failure on line 22 in .github/workflows/kubevirt.yaml

View workflow run for this annotation

GitHub Actions / Kubevirt: Build, Trivy & ClamAV Scan

Invalid workflow file

The workflow is not valid. .github/workflows/kubevirt.yaml (Line: 22, Col: 3): The workflow must contain at least one job with no dependencies.
needs: qemu-build-and-scan
permissions:
contents: read
runs-on: ubuntu-24.04
steps:
- name: Setup Tools & Fetch Repo
uses: ./.github/actions/setup-tools
- name: Cache Kubevirt output artifacts
id: cache-kubevirt
uses: actions/cache@v4
env:
cache-name: cache-kubevirt
with:
path: workspace/kubevirt-artifacts
# Use the hash of the document this workflow is based on to decide whether the build should be re-run or not
key: kubevirt-binary-$(hashFiles('kubevirt-patch/0001-Bump-dependency-versions-for-kubevirt-v1.5.0.patch', 'kubevirt-patch/0001-Patching-Kubevirt-with-GTK-libraries_v1.patch', 'kubevirt-patch/README.md'))
- name: Run local docker registry
continue-on-error: false
run: |
# Run a local registry
docker run -d -p 5000:5000 --name registry registry:2.7
- name: Download QEMU artifact
uses: actions/download-artifact@v4
with:
artifact-ids: ${{ needs.qemu-build-and-scan.outputs.qemu-artifact-id }}
path: qemu-artifact
- name: Build and patch kubevirt
continue-on-error: false
if: ${{ steps.cache-kubevirt.outputs.cache-hit != 'true' }}
# Each logical block here is copied exactly from a code block in kubevirt-patch/README.md
run: |
mkdir -p workspace
cd workspace
git clone https://github.com/kubevirt/kubevirt.git
cd kubevirt
git checkout v1.5.0
git apply $EDV_HOME/kubevirt-patch/0001-Bump-dependency-versions-for-kubevirt-v1.5.0.patch
git apply $EDV_HOME/kubevirt-patch/0001-Patching-Kubevirt-with-GTK-libraries_v1.patch
mkdir build
cp $EDV_HOME/qemu-artifact/qemu-system-x86_64 build/qemu-system-x86_64
QEMU_SHA256="$(sha256sum ./build/qemu-system-x86_64 | cut -d ' ' -f 1)"
echo "QEMU_SHA256=$QEMU_SHA256"
perl -p -i -e "s|<SHA256SUM_OF_PATCHED_QEMU>|$QEMU_SHA256|g" WORKSPACE
export DOCKER_PREFIX=localhost:5000
export DOCKER_TAG=$EDV_VERSION
make rpm-deps
make all
make bazel-build-images
make push
make manifests
- name: Export kubevirt build artifacts to output directory
continue-on-error: true
shell: bash
working-directory: workspace/kubevirt-artifacts
run: |
cp -a ../kubevirt/_out/manifests/release/kubevirt-operator.yaml
cp -a ../kubevirt/_out/manifests/release/kubevirt-cr.yaml
docker image pull localhost:5000/sidecar-shim:$DOCKER_TAG
docker image pull localhost:5000/virt-api:$DOCKER_TAG
docker image pull localhost:5000/virt-handler:$DOCKER_TAG
docker image pull localhost:5000/virt-launcher:$DOCKER_TAG
docker image pull localhost:5000/virt-operator:$DOCKER_TAG
docker image pull localhost:5000/virt-controller:$DOCKER_TAG
docker save -o sidecar-shim.tar localhost:5000/sidecar-shim:$DOCKER_TAG
docker save -o virt-api.tar localhost:5000/virt-api:$DOCKER_TAG
docker save -o virt-controller.tar localhost:5000/virt-controller:$DOCKER_TAG
docker save -o virt-handler.tar localhost:5000/virt-handler:$DOCKER_TAG
docker save -o virt-launcher.tar localhost:5000/virt-launcher:$DOCKER_TAG
docker save -o virt-operator.tar localhost:5000/virt-operator:$DOCKER_TAG
tar czf intel-idv-kubevirt-$DOCKER_TAG.tar.gz *.tar *.yaml
- name: Upload kubevirt artifacts
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: kubevirt artifacts
path: |
workspace/kubevirt-artifacts/intel-idv-kubevirt-$DOCKER_TAG.tar.gz