Skip to content

Commit

Permalink
[skip-ci] machine images
Browse files Browse the repository at this point in the history
[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <[email protected]>
  • Loading branch information
lsm5 committed Feb 28, 2024
1 parent 031e7a1 commit f5742bb
Show file tree
Hide file tree
Showing 7 changed files with 437 additions and 40 deletions.
13 changes: 12 additions & 1 deletion .github/workflows/fcos-podman-next-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ on:
- cron: '0 0 * * *'

env:
IMAGE_NAME: fcos
FCOS_IMAGE_NAME: fcos
MACHINE_IMAGE_NAME: machine-images
# IMAGE_ARCHS has to be comma separated
IMAGE_ARCHS: amd64, arm64
IMAGE_REGISTRY: quay.io/podman
Expand All @@ -32,6 +33,10 @@ jobs:
run: |
pip3 install git+https://github.com/packit/wait-for-copr.git@main
- name: Set up cosa
run: |
# TBD
- name: Check out code
uses: actions/checkout@v4

Expand Down Expand Up @@ -63,6 +68,12 @@ jobs:
org.opencontainers.image.description=FCOS image with rpms from rhcontainerbot/podman-next copr
org.opencontainers.image.revision=${{ github.sha }}
- name: Build Machine images
run: |
# TBD

- name: Add Machine images to Manifest
# TBD

- name: Echo Outputs
run: |
Expand Down
103 changes: 103 additions & 0 deletions .github/workflows/machine-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
workflow_dispatch: false

name: MACHINE IMAGE TRIAL

on:
pull_request:
branches:
- main

env:
MANIFEST_ADD_ARGS: --artifact --artifact-type="" --artifact-config-type="application/vnd.oci.image.config.v1+json" --artifact-layer-type=application/vnd.oci.image.layer.v1.tar --os=linux --arch=x86_64

defaults:
run:
shell: bash -l {0}

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Install qemu dependency
run: |
sudo apt update
sudo apt -y install qemu-user-static
- name: Delete hostedtoolcache
run: rm -rf /opt/hostedtoolcache

- name: Check out code
uses: actions/checkout@v4

- name: Pull coreos-assembler image
run: podman pull quay.io/coreos-assembler/coreos-assembler

- name: create fcos work dir
run: mkdir ./fcos

- name: Cosa init
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa init --branch podman-next https://github.com/lsm5/fedora-coreos-config
- name: Cosa Fetch
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa fetch --update-lockfile
- name: Cosa Build Qcow2
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa build
- name: Cosa Build Hyperv
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa buildextend-hyperv
- name: Cosa Build Applehv
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa buildextend-applehv
- name: Cosa Compress Qcow2
run: |
source ./contrib/podman-next/fcos-podmanimage/cosa-snippet
cd fcos
cosa compress
- name: Create manifest
run: buildah manifest create quay.io/podman/machine-images:5.0

- name: Add Qcow2 to manifest
run: |
cd ./fcos/builds/latest/x86_64
echo "QCOW_IMAGE_X86_64=$(ls | grep qcow2.xz)" >> $GITHUB_ENV
buildah manifest add --artifact --artifact-type="" --artifact-config-type="application/vnd.oci.image.config.v1+json" --artifact-layer-type=application/vnd.oci.image.layer.v1.tar --os=linux --arch=x86_64 --annotation "disktype=qemu" quay.io/podman/machine-images:5.0 ${{ env.QCOW_IMAGE }}
- name: Add Applehv to manifest
run: |
cd ./fcos/builds/latest/x86_64
echo "APPLEHV_IMAGE=$(ls | grep applehv.x86_64.raw.gz)" >> $GITHUB_ENV
buildah manifest add --artifact --artifact-type="" --artifact-config-type="application/vnd.oci.image.config.v1+json" --artifact-layer-type=application/vnd.oci.image.layer.v1.tar --os=linux --arch=x86_64 --annotation "disktype=applehv" quay.io/podman/machine-images:5.0 ${{ env.APPLEHV_IMAGE }}
- name: Add Hyperv to manifest
run: |
cd ./fcos/builds/latest/x86_64
echo "HYPERV_IMAGE=$(ls | grep hyperv.x86_64.vhdx.zip)" >> $GITHUB_ENV
buildah manifest add --artifact --artifact-type="" --artifact-config-type="application/vnd.oci.image.config.v1+json" --artifact-layer-type=application/vnd.oci.image.layer.v1.tar --os=linux --arch=x86_64 --annotation "disktype=hyperv" quay.io/podman/machine-images:5.0 ${{ env.HYPERV_IMAGE }}
- name: Push to Quay
uses: redhat-actions/push-to-registry@v2
with:
image: machine-images
tags: 5.0
registry: quay.io/podman
username: ${{ secrets.QUAY_PODMAN_USERNAME }}
password: ${{ secrets.QUAY_PODMAN_PASSWORD }}
97 changes: 97 additions & 0 deletions .github/workflows/new-machine-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: MACHINE IMAGE FROM FCOS IAMGE

on:
pull_request:
branches:
main

env:
IMAGE_NAME: fcos
MACHINE_IMAGE_NAME: machine-images
# IMAGE_ARCHS has to be comma separated
IMAGE_ARCHS: amd64, arm64
IMAGE_REGISTRY: quay.io/podman
COPR_OWNER: rhcontainerbot
COPR_PROJECT: podman-next

jobs:
fcos-podman-next-image-build:
runs-on: ubuntu-latest

steps:
- name: Install qemu dependency
run: |
sudo apt update
sudo apt -y install qemu-user-static
- name: Set up wait-for-copr
# Do not run on scheduled nightly builds
if: ${{ github.event_name != 'schedule' }}
run: |
pip3 install git+https://github.com/packit/wait-for-copr.git@main
- name: Check out code
uses: actions/checkout@v4

- name: Get short SHA from HEAD
#run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
# USE A KNOWN BUILT COMMIT FOR TESTING
run: echo "SHORT_SHA=f756e5db6" >> "$GITHUB_ENV"
id: short_sha

- name: Wait for successful podman-next build with the latest commit
# Do not run on scheduled nightly builds
if: ${{ github.event_name != 'schedule' }}
run: |
# TODO: add this in the Containerfile itself or as a --build-arg
wait-for-copr --owner ${{ env.COPR_OWNER }} --project ${{ env.COPR_PROJECT }} podman ${{ env.SHORT_SHA }}
echo "podman-next build with ${{ env.SHORT_SHA }} successful."
- name: Build FCOS Image
id: build_image_multiarch
# Ref: https://github.com/redhat-actions/buildah-build
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.IMAGE_NAME }}
tags: ${{ env.COPR_PROJECT }} podman-${{ env.SHORT_SHA }}
archs: ${{ env.IMAGE_ARCHS }}
containerfiles: ./contrib/podman-next/fcos-podmanimage/Containerfile
labels: |
org.opencontainers.image.title=fcos-podman-next image
org.opencontainers.image.source=https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/contrib/podman-next/fcos-podmanimage/Containerfile
org.opencontainers.image.url=https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
org.opencontainers.image.description=FCOS image with rpms from rhcontainerbot/podman-next copr
org.opencontainers.image.revision=${{ github.sha }}
#- name: Echo Outputs
#run: |
#echo "Image: ${{ steps.build_image_multiarch.outputs.image }}"
#echo "Tags: ${{ steps.build_image_multiarch.outputs.tags }}"
#echo "Tagged Image: ${{ steps.build_image_multiarch.outputs.image-with-tag }}"
#- name: Check images created
#run: buildah images | grep '${{ env.IMAGE_NAME }}'
#- name: Check image metadata
#run: |
#set -x
# COPR_PROJECT envvar is used for the `podman-next` floating tag
#buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".OCIv1.architecture"
#buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:${{ env.COPR_PROJECT }} | jq ".Docker.architecture"
#buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".OCIv1.architecture"
#buildah inspect ${{ steps.build_image_multiarch.outputs.image }}:podman-${{ env.SHORT_SHA }} | jq ".Docker.architecture"

#- name: Run image
#run: podman run --privileged --rm ${{ steps.build_image_multiarch.outputs.image-with-tag }} podman system info


#- name: Push to Quay
#id: push-to-quay
# Ref: https://github.com/redhat-actions/push-to-registry
#uses: redhat-actions/push-to-registry@v2
#with:
# image: ${{ env.MACHINE_IMAGE_NAME }}
# tags: ${{ steps.build_image_multiarch.outputs.tags }}
# registry: ${{ env.IMAGE_REGISTRY }}
# username: ${{ secrets.QUAY_PODMAN_USERNAME }}
# password: ${{ secrets.QUAY_PODMAN_PASSWORD }}
28 changes: 28 additions & 0 deletions .github/workflows/try-tmt-gha.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: TRY TMT GHA

on:
pull_request:
branches:
main

env:
IMAGE_NAME: fcos
MACHINE_IMAGE_NAME: machine-images
# IMAGE_ARCHS has to be comma separated
IMAGE_ARCHS: amd64, arm64
IMAGE_REGISTRY: quay.io/podman
COPR_OWNER: rhcontainerbot
COPR_PROJECT: podman-next

jobs:
fcos-podman-next-image-build:
runs-on: ubuntu-latest

steps:
- name: Schedule test on Testing Farm
uses: sclorg/[email protected]
with:
api_key: ${{ secrets.TF_API_KEY }}
git_url: https://github.com/sclorg/sclorg-testing-farm
copr: "fedora-rawhide-x86_64"
pull_request_status_name: "TEST"
78 changes: 39 additions & 39 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,54 +14,54 @@ actions:
- "bash .packit.sh"

jobs:
- job: copr_build
trigger: pull_request
notifications:
failure_comment:
message: "Ephemeral COPR build failed. @containers/packit-build please check."
enable_net: true
targets:
- fedora-all-x86_64
- fedora-all-aarch64
- fedora-eln-x86_64
- fedora-eln-aarch64
- centos-stream+epel-next-8-x86_64
- centos-stream+epel-next-8-aarch64
- centos-stream+epel-next-9-x86_64
- centos-stream+epel-next-9-aarch64
additional_repos:
- "copr://rhcontainerbot/podman-next"
# - job: copr_build
# trigger: pull_request
# #notifications:
#failure_comment:
# message: "Ephemeral COPR build failed. @containers/packit-build please check."
# enable_net: true
#targets:
#- fedora-all-x86_64
#- fedora-all-aarch64
#- fedora-eln-x86_64
# - fedora-eln-aarch64
#- centos-stream+epel-next-8-x86_64
#- centos-stream+epel-next-8-aarch64
# - centos-stream+epel-next-9-x86_64
#- centos-stream+epel-next-9-aarch64
#additional_repos:
# - "copr://rhcontainerbot/podman-next"

# Run on commit to main branch
- job: copr_build
trigger: commit
notifications:
failure_comment:
message: "podman-next COPR build failed. @containers/packit-build please check."
#notifications:
#failure_comment:
# message: "podman-next COPR build failed. @containers/packit-build please check."
branch: main
owner: rhcontainerbot
project: podman-next
enable_net: true

- job: tests
identifier: cockpit-revdeps
trigger: pull_request
notifications:
failure_comment:
message: "Cockpit tests failed for commit {commit_sha}. @martinpitt, @jelly, @mvollmer please check."
targets:
- fedora-latest-stable
- fedora-development
tf_extra_params:
environments:
- artifacts:
- type: repository-file
id: https://copr.fedorainfracloud.org/coprs/g/cockpit/main-builds/repo/fedora-$releasever/group_cockpit-main-builds-fedora-$releasever.repo
- type: repository-file
id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/fedora-$releasever/rhcontainerbot-podman-next-fedora-$releasever.repo
tmt:
context:
revdeps: "yes"
# - job: tests
#identifier: cockpit-revdeps
#trigger: pull_request
#notifications:
#failure_comment:
# message: "Cockpit tests failed for commit {commit_sha}. @martinpitt, @jelly, @mvollmer please check."
#targets:
#- fedora-latest-stable
#- fedora-development
#tf_extra_params:
# environments:
# - artifacts:
# - type: repository-file
# id: https://copr.fedorainfracloud.org/coprs/g/cockpit/main-builds/repo/fedora-$releasever/group_cockpit-main-builds-fedora-$releasever.repo
# - type: repository-file
#id: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/repo/fedora-$releasever/rhcontainerbot-podman-next-fedora-$releasever.repo
#tmt:
#context:
# revdeps: "yes"

- job: propose_downstream
trigger: release
Expand Down
Loading

0 comments on commit f5742bb

Please sign in to comment.