Merge branch 'add-ci' into 'main'
Import CI from base-images-experimental See merge request fedora/bootc/base-images!8
This commit is contained in:
commit
f9d5184fa7
|
|
@ -0,0 +1,143 @@
|
||||||
|
---
|
||||||
|
default:
|
||||||
|
interruptible: true
|
||||||
|
|
||||||
|
variables:
|
||||||
|
LATEST_VERSION: "40"
|
||||||
|
# Default this one
|
||||||
|
RUNNER: saas-linux-medium-amd64
|
||||||
|
ARM_RUNNER: tmp-gcp-bifrost-aarch64
|
||||||
|
# TODO add arm64 once we have a runner
|
||||||
|
ARCHES: "amd64"
|
||||||
|
BUILDAH_IMAGE: quay.io/buildah/stable:v1.34.0
|
||||||
|
BUILDAH_ARGS: "--security-opt=label=disable --cap-add=all"
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
|
||||||
|
# Code for merge requests
|
||||||
|
|
||||||
|
.build-image-mr:
|
||||||
|
image: $BUILDAH_IMAGE
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- VARIANT:
|
||||||
|
- full
|
||||||
|
VERSION:
|
||||||
|
- "40"
|
||||||
|
script:
|
||||||
|
- buildah bud ${BUILDAH_ARGS} --no-cache -t localhost/test ${EXTRA_ARGS} ${CONTEXT}
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH != $CI_PROJECT_PATH && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
|
||||||
|
stage: build
|
||||||
|
|
||||||
|
ci-build-image-arm64:
|
||||||
|
variables:
|
||||||
|
ARCH: arm64
|
||||||
|
extends: .build-image-mr
|
||||||
|
tags:
|
||||||
|
- $ARM_RUNNER
|
||||||
|
# See above re runner
|
||||||
|
rules:
|
||||||
|
- when: never
|
||||||
|
|
||||||
|
ci-build-image-amd64:
|
||||||
|
variables:
|
||||||
|
ARCH: amd64
|
||||||
|
extends: .build-image-mr
|
||||||
|
tags:
|
||||||
|
- $RUNNER
|
||||||
|
|
||||||
|
# Code executed to build and push to registry
|
||||||
|
|
||||||
|
.build-push-image-arch:
|
||||||
|
image: $BUILDAH_IMAGE
|
||||||
|
variables:
|
||||||
|
IMAGE: $CI_REGISTRY_IMAGE/fedora-bootc-$VARIANT:$VERSION-$ARCH
|
||||||
|
EXTRA_ARGS: --from=quay.io/fedora/fedora:$VERSION --build-arg=VARIANT=$VARIANT --format oci --arch $ARCH --security-opt=label=disable --cap-add=all
|
||||||
|
before_script:
|
||||||
|
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- buildah bud ${BUILDAH_ARGS} --no-cache -t ${IMAGE} ${EXTRA_ARGS} ${CONTEXT}
|
||||||
|
- buildah push $IMAGE
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
- when: never
|
||||||
|
stage: build
|
||||||
|
|
||||||
|
build-push-amd64:
|
||||||
|
variables:
|
||||||
|
ARCH: amd64
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- VARIANT:
|
||||||
|
- minimal
|
||||||
|
- full
|
||||||
|
VERSION:
|
||||||
|
- "40"
|
||||||
|
- rawhide
|
||||||
|
extends: .build-push-image-arch
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
- when: never
|
||||||
|
stage: build
|
||||||
|
|
||||||
|
build-push-arm64:
|
||||||
|
tags:
|
||||||
|
- tmp-gcp-bifrost-aarch64
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- VARIANT:
|
||||||
|
- minimal
|
||||||
|
- full
|
||||||
|
VERSION:
|
||||||
|
- "40"
|
||||||
|
- rawhide
|
||||||
|
variables:
|
||||||
|
ARCH: arm64
|
||||||
|
extends: .build-push-image-arch
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
- when: never
|
||||||
|
stage: build
|
||||||
|
|
||||||
|
# And stitch things together into a manifest list
|
||||||
|
|
||||||
|
manifests_list:
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- VARIANT:
|
||||||
|
- minimal
|
||||||
|
- full
|
||||||
|
VERSION:
|
||||||
|
- "40"
|
||||||
|
- rawhide
|
||||||
|
needs:
|
||||||
|
- build-push-amd64
|
||||||
|
- build-push-arm64
|
||||||
|
image: $BUILDAH_IMAGE
|
||||||
|
variables:
|
||||||
|
IMAGE_BASE: $CI_REGISTRY_IMAGE/fedora-bootc-$VARIANT
|
||||||
|
IMAGE: $IMAGE_BASE:$VERSION
|
||||||
|
before_script:
|
||||||
|
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
- for arch in ${ARCHES}; do buildah pull $IMAGE-${arch}; done
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
set -xeuo pipefail
|
||||||
|
buildah manifest create $IMAGE $IMAGE-amd64 $IMAGE-arm64
|
||||||
|
for arch in ${ARCHES}; do
|
||||||
|
buildah manifest annotate $IMAGE $IMAGE-${arch} --os linux --arch ${arch}
|
||||||
|
buildah manifest annotate $IMAGE $IMAGE-${arch} --os linux --arch ${arch}
|
||||||
|
done
|
||||||
|
buildah manifest push --all $IMAGE docker://$IMAGE
|
||||||
|
if test $VERSION == $LATEST_VERSION; then
|
||||||
|
buildah manifest push --all $IMAGE docker://$IMAGE_BASE:latest
|
||||||
|
fi
|
||||||
|
if test $VARIANT == full; then
|
||||||
|
buildah push $IMAGE $CI_REGISTRY_IMAGE/fedora-bootc:$VERSION
|
||||||
|
fi
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
- when: never
|
||||||
|
stage: build
|
||||||
Loading…
Reference in New Issue