123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- # Runs long, but can block a release
- priority: 40
- env:
- CI_BAZEL_BUILD: 1
- CI_BAZEL_REMOTE_CACHE: $BAZEL_REMOTE_CACHE
- CI_BAZEL_LTO: 1
- steps:
- - group: Builds
- key: builds
- steps:
- - id: build-aarch64
- label: ":bazel: Build aarch64"
- command: bin/ci-builder run min bin/pyactivate -m ci.test.build
- inputs:
- - "*"
- artifact_paths: bazel-explain.log
- depends_on: []
- timeout_in_minutes: 60
- agents:
- queue: builder-linux-aarch64-mem
- # Don't build for "trigger_job" source, which indicates that this release
- # qualification pipeline was triggered automatically by the tests pipeline
- # because there is a new tag on a v* branch. In this case we want to make
- # sure we use the exact same version for testing here as was tagged and
- # will be released, and don't build our own version just for the tests.
- if: build.source == "ui" || build.source == "schedule" || build.source == "api"
- - id: build-x86_64
- label: ":bazel: Build x86_64"
- command: bin/ci-builder run min bin/pyactivate -m ci.test.build
- inputs:
- - "*"
- artifact_paths: bazel-explain.log
- depends_on: []
- timeout_in_minutes: 60
- agents:
- queue: builder-linux-x86_64
- - group: Zippy
- key: zippy
- steps:
- - id: zippy-kafka-sources-large
- label: "Large Zippy Kafka Sources"
- depends_on: build-aarch64
- # 48h
- timeout_in_minutes: 2880
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # Fewer actions because of OoM
- args: [--scenario=KafkaSourcesLarge, --actions=12500]
- - id: zippy-dataflows-large
- label: "Large Zippy w/ complex dataflows"
- depends_on: build-aarch64
- # 24h
- timeout_in_minutes: 1440
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # OoM and out of disk
- args: [--scenario=DataflowsLarge, --actions=8000]
- - id: zippy-pg-cdc-large
- label: "Large Zippy PostgresCdc"
- depends_on: build-aarch64
- timeout_in_minutes: 2880
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # Runs into upload size limits of Buildkite
- # Runs into slowness with new source syntax after a while
- args: [--scenario=PostgresCdcLarge, --actions=50000]
- - id: zippy-mysql-cdc-large
- label: "Large Zippy MySqlCdc"
- depends_on: build-aarch64
- timeout_in_minutes: 1440
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- args: [--scenario=MySqlCdcLarge, --actions=100000, --max-execution-time=4h]
- - id: zippy-cluster-replicas-long
- label: "Longer Zippy ClusterReplicas"
- depends_on: build-aarch64
- timeout_in_minutes: 2880
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # Execution times longer than 4h are apparently not feasible at this time due to database-issues#5201
- args: [--scenario=ClusterReplicas, --actions=10000, --max-execution-time=4h]
- - id: zippy-user-tables-large
- label: "Large Zippy w/ user tables"
- depends_on: build-aarch64
- timeout_in_minutes: 2880
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- args: [--scenario=UserTablesLarge, --actions=200000]
- - id: zippy-debezium-postgres-long
- label: "Longer Zippy Debezium Postgres"
- depends_on: build-aarch64
- timeout_in_minutes: 1440
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # Runs into upload size limits of Buildkite
- args: [--scenario=DebeziumPostgres, --actions=500000, --max-execution-time=4h]
- - id: zippy-backup-and-restore-large
- label: "Large-scale backup+restore"
- depends_on: build-aarch64
- timeout_in_minutes: 2880
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # Runs out of disk
- args: [--scenario=BackupAndRestoreLarge, --actions=200000]
- - id: zippy-kafka-parallel-insert
- label: "Longer Zippy Kafka Parallel Insert"
- depends_on: build-aarch64
- timeout_in_minutes: 1440
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: zippy
- # TODO(def-) Increase number of actions when database-issues#7257 is fixed
- args: [--scenario=KafkaParallelInsert, --transaction-isolation=serializable, --actions=50000, --max-execution-time=4h]
- - group: Benchmarks
- key: benchmark
- steps:
- - id: feature-benchmark-scale-plus-one
- label: "Feature benchmark against 'common-ancestor' with --scale=+1"
- depends_on: build-x86_64
- timeout_in_minutes: 2880
- parallelism: 8
- agents:
- queue: hetzner-x86-64-dedi-16cpu-64gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: feature-benchmark
- args: [--other-tag=common-ancestor, --scale=+1]
- - id: long-parallel-benchmark
- label: "Long Parallel Benchmark"
- depends_on: build-x86_64
- timeout_in_minutes: 1200
- agents:
- queue: hetzner-x86-64-dedi-8cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: parallel-benchmark
- args:
- - --other-tag
- - common-ancestor
- - --load-phase-duration
- - 1200
- - group: SQLsmith
- key: sqlsmith
- steps:
- - id: sqlsmith-long
- label: "Longer SQLsmith"
- depends_on: build-aarch64
- timeout_in_minutes: 120
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: sqlsmith
- args: [--max-joins=2, --runtime=6000]
- - id: sqlsmith-explain-long
- label: "Longer SQLsmith explain"
- depends_on: build-aarch64
- timeout_in_minutes: 120
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: sqlsmith
- args: [--max-joins=15, --explain-only, --runtime=6000]
- - id: test-preflight-check-rollback
- label: Test with preflight check and rollback
- depends_on: []
- skip: "TODO(def-): Too complex to adapt for all mzcompose-based tests"
- trigger: test
- async: false
- build:
- env:
- CI_FINAL_PREFLIGHT_CHECK_VERSION: "${BUILDKITE_TAG}"
- CI_FINAL_PREFLIGHT_CHECK_ROLLBACK: 1
- - id: nightly-preflight-check-rollback
- label: Nightly with preflight check and rollback
- depends_on: []
- skip: "TODO(def-): Too complex to adapt for all mzcompose-based tests"
- trigger: nightly
- async: false
- build:
- env:
- CI_FINAL_PREFLIGHT_CHECK_VERSION: "${BUILDKITE_TAG}"
- CI_FINAL_PREFLIGHT_CHECK_ROLLBACK: 1
- - group: "MySQL: other versions"
- key: mysql-versions
- steps:
- - id: mysql-cdc-5_7
- label: "MySQL CDC w/ 5.7"
- depends_on: build-x86_64
- timeout_in_minutes: 60
- agents:
- # no matching manifest of MySQL 5.7.x for linux/arm64/v8 in the manifest list entries
- # Increased memory usage following new source syntax
- queue: hetzner-x86-64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: mysql-cdc
- args: [ "--mysql-version=5.7.44" ]
- skip: "Fails when restarted"
- - id: mysql-cdc-8_0
- label: "MySQL CDC w/ 8.0"
- depends_on: build-aarch64
- timeout_in_minutes: 60
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: mysql-cdc
- args: [ "--mysql-version=8.0.40" ]
- - group: "Postgres: other versions"
- key: postgres-versions
- steps:
- - id: pg-cdc-16
- label: "Postgres CDC w/ 16"
- depends_on: build-aarch64
- timeout_in_minutes: 60
- inputs: [test/pg-cdc]
- plugins:
- - ./ci/plugins/mzcompose:
- composition: pg-cdc
- args: [ "--pg-version=16.6" ]
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- - id: pg-cdc-15
- label: "Postgres CDC w/ 15"
- depends_on: build-aarch64
- timeout_in_minutes: 60
- inputs: [test/pg-cdc]
- plugins:
- - ./ci/plugins/mzcompose:
- composition: pg-cdc
- args: [ "--pg-version=15.10" ]
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- - id: pg-cdc-14
- label: "Postgres CDC w/ 14"
- depends_on: build-aarch64
- timeout_in_minutes: 60
- inputs: [test/pg-cdc]
- plugins:
- - ./ci/plugins/mzcompose:
- composition: pg-cdc
- args: [ "--pg-version=14.15" ]
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- - id: pg-cdc-13
- label: "Postgres CDC w/ 13"
- depends_on: build-aarch64
- timeout_in_minutes: 60
- inputs: [test/pg-cdc]
- plugins:
- - ./ci/plugins/mzcompose:
- composition: pg-cdc
- args: [ "--pg-version=13.18" ]
- agents:
- queue: hetzner-aarch64-4cpu-8gb
- - group: "Platform checks"
- key: platform-checks
- steps:
- - id: checks-restart-cockroach
- label: "Checks + restart Cockroach"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- # Sometimes runs into query timeouts or entire test timeouts with parallelism 1, too much state, same in all other platform-checks
- parallelism: 3
- agents:
- # A larger instance is needed due to frequent OOMs, same in all other platform-checks
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=RestartCockroach, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-backup-restore-before-manipulate
- label: "Checks backup + restore between the two manipulate()"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=BackupAndRestoreBeforeManipulate, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-backup-restore-after-manipulate
- label: "Checks backup + restore after manipulate()"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=BackupAndRestoreAfterManipulate, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-backup-multi
- label: "Checks + multiple backups/restores"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 4
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=BackupAndRestoreMulti, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-preflight-check-continue
- label: "Checks preflight-check and continue upgrade"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=PreflightCheckContinue, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-upgrade-clusterd-compute-first
- label: "Platform checks upgrade, restarting compute clusterd first"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=UpgradeClusterdComputeFirst, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-upgrade-clusterd-compute-last
- label: "Platform checks upgrade, restarting compute clusterd last"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=UpgradeClusterdComputeLast, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-kill-clusterd-storage
- label: "Checks + kill storage clusterd"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=KillClusterdStorage, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-restart-source-postgres
- label: "Checks + restart source Postgres"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=RestartSourcePostgres, --check=PgCdc, --check=PgCdcNoWait, --check=PgCdcMzNow, --check=SshPg]
- - id: checks-restart-clusterd-compute
- label: "Checks + restart clusterd compute"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=RestartClusterdCompute, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-drop-create-default-replica
- label: "Checks + DROP/CREATE replica"
- depends_on: build-aarch64
- timeout_in_minutes: 180
- parallelism: 3
- agents:
- # Seems to require more memory on aarch64
- queue: hetzner-aarch64-8cpu-16gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=DropCreateDefaultReplica, "--seed=$BUILDKITE_JOB_ID"]
- - id: checks-0dt-restart-entire-mz
- label: "Checks 0dt restart of the entire Mz"
- depends_on: build-aarch64
- timeout_in_minutes: 120
- parallelism: 3
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: platform-checks
- args: [--scenario=ZeroDowntimeRestartEntireMz, "--seed=$BUILDKITE_JOB_ID"]
- - id: limits
- label: "Product limits (finding new limits)"
- depends_on: build-aarch64
- agents:
- queue: hetzner-aarch64-16cpu-32gb
- plugins:
- - ./ci/plugins/mzcompose:
- composition: limits
- run: main
- args: [--find-limit]
- timeout_in_minutes: 3600
- parallelism: 20
- - group: Large Scale Ingestions
- key: large-scale-ingestions
- steps:
- - id: mysql-cdc-large-scale
- label: MySQL CDC large scale ingestion
- depends_on: build-aarch64
- timeout_in_minutes: 3600
- plugins:
- - ./ci/plugins/mzcompose:
- composition: mysql-cdc
- run: large-scale
- agents:
- queue: hetzner-x86-64-dedi-48cpu-192gb # 1 TB disk
- - id: pg-cdc-large-scale
- label: Postgres CDC large scale ingestion
- depends_on: build-aarch64
- timeout_in_minutes: 3600
- plugins:
- - ./ci/plugins/mzcompose:
- composition: pg-cdc
- run: large-scale
- agents:
- queue: hetzner-x86-64-dedi-48cpu-192gb # 1 TB disk
- - id: upsert-large-scale
- label: Upsert large scale ingestion
- depends_on: build-aarch64
- timeout_in_minutes: 3600
- plugins:
- - ./ci/plugins/mzcompose:
- composition: upsert
- run: large-scale
- agents:
- queue: hetzner-x86-64-dedi-48cpu-192gb # 1 TB disk
|