178 lines
5.6 KiB
YAML
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.4-ga-x86_64
|
|
- aws/rhel-9.4-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.4-ga-x86_64
|
|
- aws/rhel-9.4-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
|