diff --git a/.github/workflows/component-builder-publish.yml b/.github/workflows/component-builder-publish.yml index 7cf5be0823..0fd41748f5 100644 --- a/.github/workflows/component-builder-publish.yml +++ b/.github/workflows/component-builder-publish.yml @@ -10,12 +10,10 @@ on: workflow_dispatch: jobs: - guest-fedora-amd64: + guest-fedora: runs-on: ubuntu-latest env: - FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2 FEDORA_VERSION: 41 - CPU_ARCH: amd64 FULL_EMULATION: "true" DEBIAN_FRONTEND: noninteractive steps: @@ -26,15 +24,23 @@ jobs: sudo apt-get update sudo apt-get install -y \ qemu-system-x86 \ + qemu-system-s390x \ libvirt-daemon-system \ virtinst cloud-image-utils \ libguestfs-tools - name: Tweak hosted runner to enable 'virt-sysprep' # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 run: sudo chmod 0644 /boot/vmlinuz* - - name: Fetch base Fedora image + - name: Fetch base Fedora amd64 image working-directory: ./containers/fedora run: wget -q "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/${{ env.FEDORA_IMAGE }}" + env: + FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2 + - name: Fetch base Fedora s390x image + working-directory: ./containers/fedora + run: wget -q "https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/${{ env.FEDORA_IMAGE }}" + env: + FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.s390x.qcow2 - name: Install uv uses: astral-sh/setup-uv@v7 with: @@ -45,6 +51,17 @@ jobs: PYTHONPATH: ${{ github.workspace }} ORGANIZATION_ID: ${{ secrets.BITWARDEN_ORGANIZATION_ID }} ACCESS_TOKEN: ${{ secrets.BITWARDEN_ACCESS_TOKEN }} + FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2 + CPU_ARCH: amd64 + run: ./build.sh + - name: Create s390x VM + working-directory: ./containers/fedora + env: + PYTHONPATH: ${{ github.workspace }} + ORGANIZATION_ID: ${{ secrets.BITWARDEN_ORGANIZATION_ID }} + ACCESS_TOKEN: ${{ secrets.BITWARDEN_ACCESS_TOKEN }} + FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.s390x.qcow2 + CPU_ARCH: s390x run: ./build.sh - name: Logging to quay.io run: podman login -u ${{ secrets.QUAY_USER }} -p ${{ secrets.QUAY_TOKEN }} quay.io @@ -52,10 +69,13 @@ jobs: env: local_repository: "localhost/fedora" remote_repository: "quay.io/openshift-cnv/qe-cnv-tests-fedora-staging" - arch_tag: "${{ env.FEDORA_VERSION }}-${{ env.CPU_ARCH }}" + arch_tag_amd64: "${{ env.FEDORA_VERSION }}-amd64" + arch_tag_s390x: "${{ env.FEDORA_VERSION }}-s390x" remote_tag: "${{ env.FEDORA_VERSION }}-dev" run: | - podman tag "${local_repository}":"${arch_tag}" "${remote_repository}":"${arch_tag}" - podman push "${remote_repository}":"${arch_tag}" - podman manifest create --log-level=debug "${remote_repository}":"${remote_tag}" "${remote_repository}":"${arch_tag}" + podman tag "${local_repository}":"${arch_tag_amd64}" "${remote_repository}":"${arch_tag_amd64}" + podman tag "${local_repository}":"${arch_tag_s390x}" "${remote_repository}":"${arch_tag_s390x}" + podman push "${remote_repository}":"${arch_tag_amd64}" + podman push "${remote_repository}":"${arch_tag_s390x}" + podman manifest create --log-level=debug "${remote_repository}":"${remote_tag}" "${remote_repository}":"${arch_tag_amd64}" "${remote_repository}":"${arch_tag_s390x}" podman manifest push "${remote_repository}":"${remote_tag}" --all --format=v2s2 diff --git a/.github/workflows/component-builder.yml b/.github/workflows/component-builder.yml index 8aea9701e8..6dcd4737a4 100644 --- a/.github/workflows/component-builder.yml +++ b/.github/workflows/component-builder.yml @@ -51,12 +51,64 @@ jobs: run: | mkdir -p artifacts podman tag "${local_repository}":"${arch_tag}" "${remote_repository}":"${arch_tag}" - podman save -o artifacts/fedora-image.tar "${remote_repository}":"${arch_tag}" - echo "Saved image to artifacts/fedora-image.tar" + podman save -o artifacts/fedora-image-${{ env.CPU_ARCH }}.tar "${remote_repository}":"${arch_tag}" + echo "Saved image to artifacts/fedora-image-${{ env.CPU_ARCH }}.tar" - name: Upload container image artifact uses: actions/upload-artifact@v6 with: - name: fedora-container-image - path: artifacts/fedora-image.tar + name: fedora-container-image-${{ env.CPU_ARCH }} + path: artifacts/fedora-image-${{ env.CPU_ARCH }}.tar + retention-days: 5 + compression-level: 0 + guest-fedora-s390x: + runs-on: ubuntu-latest + env: + FEDORA_IMAGE: Fedora-Cloud-Base-Generic-41-1.4.s390x.qcow2 + FEDORA_VERSION: 41 + CPU_ARCH: s390x + FULL_EMULATION: "true" + DEBIAN_FRONTEND: noninteractive + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Install dependencies for VM build + run: | + sudo apt-get update + sudo apt-get install -y \ + qemu-system-s390x \ + libvirt-daemon-system \ + virtinst cloud-image-utils \ + libguestfs-tools + - name: Tweak hosted runner to enable 'virt-sysprep' + # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 + run: sudo chmod 0644 /boot/vmlinuz* + - name: Fetch base Fedora image + working-directory: ./containers/fedora + run: wget -q "https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/${{ env.FEDORA_IMAGE }}" + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + version: "0.8.22" + - name: Create VM + working-directory: ./containers/fedora + env: + PYTHONPATH: ${{ github.workspace }} + NO_SECRETS: "true" + run: ./build.sh + - name: Save container image as tarball + env: + local_repository: "localhost/fedora" + remote_repository: "quay.io/openshift-cnv/qe-cnv-tests-fedora-staging" + arch_tag: "${{ env.FEDORA_VERSION }}-${{ env.CPU_ARCH }}" + run: | + mkdir -p artifacts + podman tag "${local_repository}":"${arch_tag}" "${remote_repository}":"${arch_tag}" + podman save -o artifacts/fedora-image-${{ env.CPU_ARCH }}.tar "${remote_repository}":"${arch_tag}" + echo "Saved image to artifacts/fedora-image-${{ env.CPU_ARCH }}.tar" + - name: Upload container image artifact + uses: actions/upload-artifact@v4 + with: + name: fedora-container-image-${{ env.CPU_ARCH }} + path: artifacts/fedora-image-${{ env.CPU_ARCH }}.tar retention-days: 5 compression-level: 0