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-41-x86_64 - aws/fedora-41-aarch64 - aws/fedora-42-x86_64 - aws/fedora-42-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.6-ga-x86_64 - aws/rhel-9.6-ga-aarch64 - aws/rhel-10.0-ga-x86_64 - aws/rhel-10.0-ga-aarch64 - RUNNER: - aws/rhel-9.7-nightly-x86_64 - aws/rhel-9.7-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.6-ga-x86_64 - aws/rhel-9.6-ga-aarch64 - aws/rhel-9.7-nightly-x86_64 - aws/rhel-9.7-nightly-aarch64 - aws/rhel-10.0-ga-x86_64 - aws/rhel-10.0-ga-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