debian-forge/.gitlab-ci.yml
2025-03-25 10:54:37 +01:00

178 lines
5.6 KiB
YAML

stages:
- init
- rpmbuild
- test
- finish
.terraform:
before_script:
- schutzbot/ci_details.sh > ci-details-before-run
- cat schutzbot/team_ssh_keys.txt | tee -a ~/.ssh/authorized_keys > /dev/null
after_script:
- schutzbot/ci_details.sh > ci-details-after-run
- schutzbot/unregister.sh
tags:
- terraform
artifacts:
paths:
- ci-details-before-run
- ci-details-after-run
init:
stage: init
tags:
- shell
script:
- schutzbot/update_github_status.sh start
interruptible: true
RPM:
stage: rpmbuild
extends: .terraform
script:
- sh "schutzbot/mockbuild.sh"
interruptible: true
parallel:
matrix:
- RUNNER:
- aws/fedora-39-x86_64
- aws/fedora-39-aarch64
- aws/fedora-40-x86_64
- aws/fedora-40-aarch64
- aws/fedora-41-x86_64
- aws/fedora-41-aarch64
- aws/centos-stream-9-x86_64
- aws/centos-stream-9-aarch64
- aws/centos-stream-10-x86_64
- aws/centos-stream-10-aarch64
- aws/rhel-8.10-ga-x86_64
- aws/rhel-8.10-ga-aarch64
- aws/rhel-9.5-ga-x86_64
- aws/rhel-9.5-ga-aarch64
- RUNNER:
- aws/rhel-9.6-nightly-x86_64
- aws/rhel-9.6-nightly-aarch64
- aws/rhel-9.7-nightly-x86_64
- aws/rhel-9.7-nightly-aarch64
- aws/rhel-10.0-nightly-x86_64
- aws/rhel-10.0-nightly-aarch64
- aws/rhel-10.1-nightly-x86_64
- aws/rhel-10.1-nightly-aarch64
INTERNAL_NETWORK: "true"
OSTree Images:
stage: test
extends: .terraform
script:
- schutzbot/deploy.sh
- sudo test/cases/ostree-images --manifest "$MANIFEST" --export $EXPORT
variables:
RUNNER: aws/fedora-41-x86_64
parallel:
matrix:
- MANIFEST: fedora-ostree-tarball.json
EXPORT: tarball/fedora-commit.tar
- MANIFEST: fedora-ostree-container.json
EXPORT: container/fedora-container.tar
- MANIFEST: fedora-ostree-native-container.json
EXPORT: container/ostree-container.tar
- MANIFEST: fedora-ostree-bootiso.json
EXPORT: bootiso/fedora-ostree-boot.iso
- MANIFEST: fedora-ostree-bootiso-xz.json
EXPORT: bootiso/fedora-ostree-boot.iso
- MANIFEST: fedora-ostree-image.json
EXPORT: qcow2/disk.qcow2
- MANIFEST: fedora-coreos-container.json
EXPORT: qemu/qemu.qcow2 metal/metal.raw metal4k/metal4k.raw
- MANIFEST: fedora-ostree-container-dev-null.json
EXPORT: commit-archive/ostree-commit.tar
Manifests:
stage: test
extends: .terraform
script:
- schutzbot/deploy.sh
- schutzbot/manifest-tests-install-deps.sh
- IMAGES_REPO_REF=$(jq -r '.global.dependencies.images.ref' Schutzfile)
- |
if [[ -n "$CHUNKS_COUNT" && -n "$CHUNK" ]]; then
echo "Running manifest tests with $CHUNKS_COUNT chunks, chunk $CHUNK"
SCRIPT_EXTRA_ARGS="--chunk-size $CHUNK $CHUNKS_COUNT"
fi
if [[ -n "$UNSUPPORTED_IMG_TYPES" ]]; then
echo "Skipping unsupported image types: $UNSUPPORTED_IMG_TYPES"
SCRIPT_EXTRA_ARGS="$SCRIPT_EXTRA_ARGS --skip-image-type $UNSUPPORTED_IMG_TYPES"
fi
if [[ -n "$CONFIG" ]]; then
echo "Testing only the following manifest generation configs: $CONFIG"
SCRIPT_EXTRA_ARGS="$SCRIPT_EXTRA_ARGS --config $CONFIG"
fi
if [[ -n "$IMAGES_REPO_REF" ]]; then
echo "Using osbuild/images repo ref: $IMAGES_REPO_REF"
SCRIPT_EXTRA_ARGS="$SCRIPT_EXTRA_ARGS --images-ref $IMAGES_REPO_REF"
fi
if [[ -n "$SCRIPT_EXTRA_ARGS" ]]; then
echo "Running manifest tests with extra args: $SCRIPT_EXTRA_ARGS"
fi
- |
source /etc/os-release
if [[ "$ID" == "rhel" || "$ID" == "centos" ]]; then
export GOFLAGS="-tags=exclude_graphdriver_btrfs"
fi
- test/cases/manifest_tests --rm-artifacts-after-test --workdir ./osbuild-manifest-tests-workdir $SCRIPT_EXTRA_ARGS
variables:
PYTHONUNBUFFERED: 1
# List of image types that are not supported by osbuild-image-info
UNSUPPORTED_IMG_TYPES: "ova *container live-installer wsl"
artifacts:
when: always
paths:
- ci-details-before-run
- ci-details-after-run
- ./osbuild-manifest-tests-results/
parallel:
matrix:
- RUNNER:
- aws/fedora-41-x86_64
- aws/fedora-41-aarch64
- aws/centos-stream-9-x86_64
- aws/centos-stream-9-aarch64
- aws/centos-stream-10-x86_64
- aws/centos-stream-10-aarch64
# Test only the following manifest generation configs
CONFIG: "empty all-customizations"
CHUNK: [1, 2, 3, 4, 5]
CHUNKS_COUNT: 5
- RUNNER:
- aws/rhel-9.5-ga-x86_64
- aws/rhel-9.5-ga-aarch64
- aws/rhel-9.6-nightly-x86_64
- aws/rhel-9.6-nightly-aarch64
- aws/rhel-9.7-nightly-x86_64
- aws/rhel-9.7-nightly-aarch64
- aws/rhel-10.0-nightly-x86_64
- aws/rhel-10.0-nightly-aarch64
- aws/rhel-10.1-nightly-x86_64
- aws/rhel-10.1-nightly-aarch64
INTERNAL_NETWORK: "true"
# Test only the following manifest generation configs
CONFIG: "empty all-customizations"
CHUNK: [1, 2, 3, 4, 5]
CHUNKS_COUNT: 5
finish:
stage: finish
tags:
- shell
script:
- schutzbot/update_github_status.sh finish
fail:
stage: finish
tags:
- shell
script:
- schutzbot/update_github_status.sh fail
- exit 1 # make the pipeline fail so it doesn't look like success in gitlab
when:
on_failure