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 - iostats.json 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: - schutzbot/start_iostats.sh - sh "schutzbot/mockbuild.sh" - schutzbot/stop_iostats.sh interruptible: true after_script: - schutzbot/update_github_status.sh update - schutzbot/save_journal.sh artifacts: paths: - journal-log.gpg parallel: matrix: - RUNNER: - aws/fedora-33-x86_64 - aws/fedora-33-aarch64 - 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: - schutzbot/start_iostats.sh - sh "schutzbot/containerbuild.sh" - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - aws/fedora-33-x86_64 Packer: stage: test extends: .terraform rules: - if: '$CI_PIPELINE_SOURCE != "schedule"' script: - schutzbot/packer.sh variables: RUNNER: aws/centos-stream-8-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/start_iostats.sh - schutzbot/prepare-rhel-internal.sh - schutzbot/stop_iostats.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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/base_tests.sh - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - aws/fedora-33-x86_64 - aws/fedora-33-aarch64 # 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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/regression.sh - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - aws/fedora-33-x86_64 - aws/fedora-33-aarch64 # 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 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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree.sh - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - openstack/fedora-33-x86_64 # See COMPOSER-919 # - openstack/fedora-34-x86_64 - openstack/rhel-8.5-ga-x86_64 - openstack/rhel-8.6-nightly-x86_64 - openstack/rhel-9.0-nightly-x86_64 - openstack/centos-stream-8-x86_64 New OSTree: stage: test extends: OSTree script: - schutzbot/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-ng.sh - schutzbot/stop_iostats.sh parallel: matrix: - RUNNER: - openstack/rhel-8.6-nightly-x86_64-large - openstack/rhel-9.0-nightly-x86_64-large - openstack/centos-stream-8-x86_64 OSTree simplified installer: stage: test extends: OSTree script: - schutzbot/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-simplified-installer.sh - schutzbot/stop_iostats.sh parallel: matrix: - RUNNER: - openstack/rhel-8.6-nightly-x86_64-large - openstack/centos-stream-8-x86_64 - openstack/rhel-9.0-nightly-x86_64 OSTree raw image: stage: test extends: OSTree script: - schutzbot/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/ostree-raw-image.sh - schutzbot/stop_iostats.sh parallel: matrix: - RUNNER: - openstack/rhel-8.6-nightly-x86_64 - openstack/centos-stream-8-x86_64 - openstack/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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/${SCRIPT} - schutzbot/stop_iostats.sh parallel: matrix: - <<: *INTEGRATION_TESTS RUNNER: - aws/fedora-33-x86_64 # See COMPOSER-919 # - aws/fedora-34-x86_64 # See COMPOSER-1118 # - aws/centos-stream-8-x86_64 - 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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/api.sh ${IMAGE_TYPE} - schutzbot/stop_iostats.sh 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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/libvirt.sh - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - openstack/fedora-33-x86_64 - openstack/centos-stream-8-x86_64 - RUNNER: - openstack/rhel-8.5-ga-x86_64 - openstack/rhel-8.6-nightly-x86_64 - openstack/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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/koji.sh - schutzbot/stop_iostats.sh interruptible: true variables: RUNNER: aws/rhel-8.5-ga-x86_64 INTERNAL_NETWORK: "true" DISTRO_CODE: rhel-90 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/start_iostats.sh - schutzbot/deploy.sh - /usr/libexec/tests/osbuild-composer/installers.sh - schutzbot/stop_iostats.sh interruptible: true parallel: matrix: - RUNNER: - openstack/rhel-8.6-nightly-x86_64 - openstack/rhel-9.0-nightly-x86_64 SCHEDULED_CLOUD_CLEANER: stage: cleanup tags: - terraform variables: RUNNER: aws/centos-stream-8-x86_64 rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $CLEANUP == "true"' script: - schutzbot/deploy.sh - schutzbot/scheduled_cloud_cleaner.sh finish: stage: finish tags: - shell script: - schutzbot/update_github_status.sh finish