Workflow (by @byron-marohn via pull_request) #5
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
--- | ||
# 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
|
||
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 |