stages: - init - rpmbuild - prepare-rhel-internal - test - cleanup - finish .base: after_script: - schutzbot/update_github_status.sh update - schutzbot/save_journal.sh - schutzbot/run_cloud_cleaner.sh tags: - terraform artifacts: paths: - journal-log.gpg - ci-artifacts when: always .terraform: extends: .base tags: - terraform .terraform/openstack: extends: .base tags: - terraform/openstack init: stage: init tags: - shell script: - schutzbot/update_github_status.sh start interruptible: true RPM: stage: rpmbuild extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' script: - sh "schutzbot/mockbuild.sh" interruptible: true after_script: - schutzbot/update_github_status.sh update - schutzbot/save_journal.sh artifacts: paths: - journal-log.gpg when: always parallel: matrix: - RUNNER: - aws/fedora-34-x86_64 - aws/fedora-34-aarch64 - aws/rhel-8.5-ga-x86_64 - aws/rhel-8.5-ga-aarch64 - aws/centos-stream-8-x86_64 - aws/centos-stream-8-aarch64 - RUNNER: - aws/rhel-8.6-nightly-x86_64 - aws/rhel-8.6-nightly-aarch64 - aws/rhel-9.0-nightly-x86_64 - aws/rhel-9.0-nightly-aarch64 INTERNAL_NETWORK: ["true"] Container: stage: rpmbuild extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' script: - sh "schutzbot/containerbuild.sh" interruptible: true parallel: matrix: - RUNNER: - aws/centos-stream-8-x86_64 Packer: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule" && $CI_COMMIT_BRANCH =~ /PR-[0-9]+/' script: - tools/appsre-build-worker-packer.sh variables: RUNNER: aws/rhel-8.5-ga-x86_64 Prepare-rhel-internal: stage: prepare-rhel-internal extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/prepare-rhel-internal.sh interruptible: true artifacts: paths: - rhel-${RHEL_MAJOR}.json - rhel${RHEL_MAJOR}internal.repo - rhel-${RHEL_MAJOR}-beta.json - COMPOSE_ID parallel: matrix: - RUNNER: # NOTE: 1 runner prepares for all arches b/c subsequent jobs download # artifacts from all previous jobs and the last one wins - aws/rhel-8.6-nightly-x86_64 - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] Base: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/base_tests.sh interruptible: true parallel: matrix: - RUNNER: # See COMPOSER-919 # - aws/fedora-34-x86_64 # - aws/fedora-34-aarch64 - aws/rhel-8.5-ga-x86_64 - aws/rhel-8.5-ga-aarch64 - aws/centos-stream-8-x86_64 - aws/centos-stream-8-aarch64 - RUNNER: - aws/rhel-8.6-nightly-x86_64 - aws/rhel-8.6-nightly-aarch64 - aws/rhel-9.0-nightly-x86_64 - aws/rhel-9.0-nightly-aarch64 INTERNAL_NETWORK: ["true"] artifacts: paths: - journal-log.gpg - "*.repo" when: always Manifests: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/manifest_tests.sh parallel: matrix: - RUNNER: - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] artifacts: paths: - journal-log.gpg - "*.repo" when: always Regression: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/regression.sh interruptible: true parallel: matrix: - RUNNER: # Enable f34 once we have rpmrepo snapshots for it - aws/centos-stream-8-x86_64 - aws/centos-stream-8-aarch64 - RUNNER: - aws/rhel-8.5-ga-x86_64 - aws/rhel-8.5-ga-aarch64 - aws/rhel-8.6-nightly-x86_64 - aws/rhel-8.6-nightly-aarch64 - aws/rhel-9.0-nightly-x86_64 - aws/rhel-9.0-nightly-aarch64 INTERNAL_NETWORK: ["true"] artifacts: paths: - journal-log.gpg - "*.repo" when: always Image Tests: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/image_tests.sh interruptible: true parallel: matrix: - RUNNER: - aws/rhel-8.6-nightly-x86_64 - aws/rhel-8.6-nightly-aarch64 # See https://github.com/osbuild/osbuild-composer/issues/1819 and related issues - aws/rhel-9.0-nightly-x86_64 - aws/rhel-9.0-nightly-aarch64 INTERNAL_NETWORK: ["true"] artifacts: paths: - journal-log.gpg - "*.repo" when: always Test Case Generation: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/generation.sh interruptible: true parallel: matrix: - RUNNER: - aws/fedora-34-x86_64 INTERNAL_NETWORK: ["true"] artifacts: paths: - journal-log.gpg - "*.repo" when: always OSTree: stage: test extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree.sh interruptible: true parallel: matrix: - RUNNER: # See COMPOSER-919 # - rhos-01/fedora-34-x86_64 - rhos-01/rhel-8.5-ga-x86_64 - rhos-01/rhel-8.6-nightly-x86_64 - rhos-01/rhel-9.0-nightly-x86_64 - rhos-01/centos-stream-8-x86_64 New OSTree: stage: test extends: OSTree script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-ng.sh parallel: matrix: - RUNNER: - rhos-01/rhel-8.6-nightly-x86_64-large - rhos-01/rhel-9.0-nightly-x86_64-large - rhos-01/centos-stream-8-x86_64 OSTree simplified installer: stage: test extends: OSTree script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-simplified-installer.sh parallel: matrix: - RUNNER: - rhos-01/rhel-8.6-nightly-x86_64-large - rhos-01/centos-stream-8-x86_64 - rhos-01/rhel-9.0-nightly-x86_64 OSTree raw image: stage: test extends: OSTree script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-raw-image.sh parallel: matrix: - RUNNER: - rhos-01/rhel-8.6-nightly-x86_64 - rhos-01/centos-stream-8-x86_64 - rhos-01/rhel-9.0-nightly-x86_64 .INTEGRATION_TESTS: &INTEGRATION_TESTS SCRIPT: - koji.sh - aws.sh - azure.sh - vmware.sh - filesystem.sh - cross-distro.sh Integration: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/${SCRIPT} parallel: matrix: - SCRIPT: - koji.sh - aws.sh RUNNER: - aws/centos-stream-8-x86_64 - <<: *INTEGRATION_TESTS RUNNER: - aws/rhel-8.5-ga-x86_64 - aws/rhel-8.6-nightly-x86_64 - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] - SCRIPT: - azure_hyperv_gen2.sh RUNNER: - aws/rhel-8.6-nightly-x86_64 INTERNAL_NETWORK: ["true"] .API_TESTS: &API_TESTS IMAGE_TYPE: - aws - azure - edge-commit - gcp API: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/api.sh ${IMAGE_TYPE} parallel: matrix: - <<: *API_TESTS RUNNER: - aws/rhel-8.5-ga-x86_64 - aws/rhel-8.6-nightly-x86_64 - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] libvirt: stage: test extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9.0-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8.6-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/libvirt.sh interruptible: true parallel: matrix: - RUNNER: - rhos-01/centos-stream-8-x86_64 - RUNNER: - rhos-01/rhel-8.5-ga-x86_64 - rhos-01/rhel-8.6-nightly-x86_64 - rhos-01/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] RHEL 9 on 8: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/koji.sh interruptible: true variables: RUNNER: aws/rhel-8.5-ga-x86_64 INTERNAL_NETWORK: "true" DISTRO_CODE: rhel-90 Upgrade: stage: test extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/upgrade8to9.sh variables: RUNNER: rhos-01/rhel-9.0-nightly-x86_64 artifacts: paths: - journal-log.gpg - ci-artifacts - install_console.log - upgrade_console.log - osbuild-upgrade8to9.log - osbuild-upgrade8to9.json when: always NIGHTLY_FAIL: stage: finish tags: - shell rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $NIGHTLY == "true"' when: on_failure script: - schutzbot/slack_notification.sh FAILED ":big-sad:" NIGHTLY_SUCCESS: stage: finish tags: - shell rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $NIGHTLY == "true"' script: - schutzbot/slack_notification.sh SUCCESS ":partymeow:" Installer: stage: test extends: .terraform/openstack rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-9\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "9"' - if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-8\.[0-9]-[^ga][\S]+/ && $NIGHTLY == "true" && $RHEL_MAJOR == "8"' script: - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/installers.sh interruptible: true parallel: matrix: - RUNNER: - rhos-01/rhel-8.6-nightly-x86_64 - rhos-01/rhel-9.0-nightly-x86_64 SCHEDULED_CLOUD_CLEANER: stage: cleanup tags: - terraform variables: RUNNER: aws/centos-stream-8-x86_64 INTERNAL_NETWORK: "true" rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $CLEANUP == "true"' script: - schutzbot/deploy.sh - schutzbot/scheduled_cloud_cleaner.sh SonarQube: stage: test extends: .terraform script: - schutzbot/sonarqube.sh variables: RUNNER: aws/centos-stream-8-x86_64 INTERNAL_NETWORK: "true" GIT_DEPTH: 0 finish: stage: finish tags: - shell script: - schutzbot/update_github_status.sh finish