Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a5a9da3
Remove legacy driver mode
Apr 25, 2025
5f72246
Corrections
Apr 25, 2025
3907067
More removals
Apr 25, 2025
1abf3fc
Merge pull request #748 from bugsnag/tms/remove-legacy
twometresteve Apr 30, 2025
fa09bee
Remove deprecated Cucumber steps and driver methods
May 2, 2025
7623a52
Correction to replacement step name
May 6, 2025
1b01248
Update submodule
May 6, 2025
e0e7cce
Remove document server on port 9340
May 2, 2025
87c7e7d
Merge pull request #751 from bugsnag/tms/remove-steps
twometresteve May 7, 2025
dc4c91c
Merge pull request #752 from bugsnag/tms/remove-9340
twometresteve May 7, 2025
3523038
Merge branch 'main' into integration/v10
May 8, 2025
e9685d9
Merge branch 'main' into integration/v10
May 14, 2025
5f2fb3b
Merge branch 'main' into integration/v10
May 18, 2025
468cbae
Bump submodules
May 20, 2025
f74faef
Merge pull request #761 from bugsnag/tms/bump-submodules
twometresteve May 27, 2025
c7580ea
Merge branch 'main' into integration/v10
Jun 2, 2025
1902598
Merge branch 'main' into integration/v10
Jun 11, 2025
8f5f8db
Merge branch 'main' into integration/v10
Jul 24, 2025
153a12a
Merge branch 'main' into integration/v10
Aug 1, 2025
110694b
Bump Docker image image to Ruby 3.4
Aug 4, 2025
be2f1dc
Bump Cucumber 9 and unpin cucumber-expressions
Aug 4, 2025
4b8c1a6
Ensure unit tests work before and after 3.4
Aug 4, 2025
4eb5e1b
Use latest Cucumber
Aug 4, 2025
9a7474f
Remove int-based step definition as float works
Aug 4, 2025
d00eb9f
Remove int variant of step
Aug 4, 2025
d9609c6
Merge buildkite plugin uses
Aug 5, 2025
94e4022
Changelog
Aug 5, 2025
c904c3a
Separate plugins
Aug 5, 2025
f3766b9
Merge pull request #773 from bugsnag/tms/ruby-3-4
twometresteve Aug 6, 2025
6b6f302
Merge pull request #775 from bugsnag/tms/separate-plugins
twometresteve Aug 6, 2025
c3c4154
Merge branch 'main' into integration/v10
Aug 22, 2025
8643294
Minimum Ruby version increased to 3.1
Aug 22, 2025
05af552
Merge pull request #781 from bugsnag/tms/gemspec
twometresteve Aug 22, 2025
e55321b
Remove scenario retries for driver errors
Aug 22, 2025
2164119
Merge pull request #782 from bugsnag/tms/retry-on-error
twometresteve Aug 26, 2025
14d8b75
Merge branch 'main' into integration/v10
Aug 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 80 additions & 169 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,203 +34,128 @@ steps:
artifacts#v1.9.0:
upload: "bugsnag-cocoa/features/fixtures/ios/output/iOSTestApp_Release.ipa"

- label: ':docker: Build CI image for Ruby 2'
- label: ':docker: Build CI image'
timeout_in_minutes: 30
key: "ci-image-ruby-2"
key: "ci-image"
plugins:
- docker-compose#v4.14.0:
build:
- ci-ruby-2
- ci
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- ci-ruby-2:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-2
- docker-compose#v4.14.0:
push:
- ci-ruby-2:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-2
env:
RUBY_VERSION: "2"

- label: ':docker: Build CI image for Ruby 3'
timeout_in_minutes: 30
key: "ci-image-ruby-3"
plugins:
- docker-compose#v4.14.0:
build:
- ci-ruby-3
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- ci-ruby-3:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-3
- docker-compose#v4.14.0:
- ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci
push:
- ci-ruby-3:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-3
env:
RUBY_VERSION: "3"
- ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci

- label: 'Unit tests with Ruby 2'
- label: 'Unit tests'
timeout_in_minutes: 30
depends_on: 'ci-image-ruby-2'
depends_on: 'ci-image'
plugins:
docker-compose#v4.14.0:
run: unit-test-ruby-2
run: unit-test
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- ci-ruby-2:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-2
- ci:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci
command: 'bundle exec rake'

- label: 'Unit tests with Ruby 3'
timeout_in_minutes: 30
depends_on: 'ci-image-ruby-3'
plugins:
docker-compose#v4.14.0:
run: unit-test-ruby-3
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- ci-ruby-3:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-ci-ruby-3
command: 'bundle exec rake'

- label: ':docker: Push W3C CLI image for branch'
- label: ':docker: Push CLI image for branch'
key: push-branch-cli
timeout_in_minutes: 30
depends_on: "ci-image-ruby-2"
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
build: cli
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli
- docker-compose#v4.14.0:
push:
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli

- label: ':docker: Push Legacy CLI image for branch'
key: push-branch-cli-legacy
- label: 'Framework tests'
timeout_in_minutes: 30
depends_on: "ci-image-ruby-2"
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
build: cli-legacy
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli-legacy
- docker-compose#v4.14.0:
push:
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli-legacy
run: framework-tests
command: 'bundle exec maze-runner'

- label: 'No-device tests with Ruby 2 - batch 1'
timeout_in_minutes: 30
depends_on: "ci-image-ruby-2"
- label: 'Comparison tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: framework-tests
- docker-compose#v4.14.0:
run: comparison-tests
- docker-compose#v4.14.0:
run: proxy-tests
- docker-compose#v4.14.0:
run: cli-tests
- docker-compose#v4.14.0:
run: http-response-tests
env:
RUBY_VERSION: "2"
USE_LEGACY_DRIVER: "1"
command: 'bundle exec maze-runner'

- label: 'No-device tests with Ruby 2 - batch 2'
timeout_in_minutes: 30
depends_on: "ci-image-ruby-2"
- label: 'Proxy tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: payload-helper-tests
- docker-compose#v4.14.0:
run: docker-tests
- docker-compose#v4.14.0:
run: doc-server-tests
- docker-compose#v4.14.0:
run: exit-codes-tests
- docker-compose#v4.14.0:
run: command-workflow-tests
- artifacts#v1.9.0:
upload:
- test/e2e/payload-helpers/maze_output/**/*
- test/e2e/payload-helpers/maze_output/*
env:
RUBY_VERSION: "2"
USE_LEGACY_DRIVER: "1"
run: proxy-tests
command: 'bundle exec maze-runner'

- label: 'No-device tests with Ruby 3 - batch 1'
timeout_in_minutes: 30
depends_on: "ci-image-ruby-3"
- label: 'CLI tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: framework-tests
- docker-compose#v4.14.0:
run: comparison-tests
- docker-compose#v4.14.0:
run: proxy-tests
- docker-compose#v4.14.0:
run: cli-tests
command: 'bundle exec maze-runner'

- label: 'HTTP response tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: http-response-tests
env:
RUBY_VERSION: "3"
command: 'bundle exec maze-runner'

- label: 'No-device tests with Ruby 3 - batch 2'
timeout_in_minutes: 30
depends_on: "ci-image-ruby-3"
- label: 'Payload helper tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: payload-helper-tests
command: 'bundle exec maze-runner'

- label: 'Docker tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: docker-tests
command: 'bundle exec maze-runner'

- label: 'Doc server tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: doc-server-tests
command: 'bundle exec maze-runner'

- label: 'Exit codes tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: exit-codes-tests
command: 'bundle exec maze-runner'

- label: 'Command workflow tests'
timeout_in_minutes: 10
depends_on: "ci-image"
plugins:
- docker-compose#v4.14.0:
run: command-workflow-tests
env:
RUBY_VERSION: "3"
command: 'bundle exec maze-runner'

#
# BrowserStack tests
#

- label: ':browserstack: Android 8.1 - JWP'
timeout_in_minutes: 20
depends_on:
- "android-test-fixture"
- "push-branch-cli-legacy"
plugins:
artifacts#v1.9.0:
download: "bugsnag-android-performance/build/test-fixture.apk"
upload:
- "bugsnag-android-performance/maze_output/**/*"
docker-compose#v4.14.0:
pull: appium-test-bs-legacy
run: appium-test-bs-legacy
volumes:
- "./bugsnag-android-performance/build:/app/build"
- "./bugsnag-android-performance/features:/app/features"
- "./bugsnag-android-performance/maze_output:/app/maze_output"
command:
- "--app=build/test-fixture.apk"
- "--farm=bs"
- "--device=ANDROID_8"
- "--fail-fast"
- "features/manual_spans.feature"
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli-legacy
env:
RUBY_VERSION: "2"
concurrency: 5
concurrency_group: 'browserstack-app'
concurrency_method: eager

- label: ':browserstack: iOS 16 - W3C'
- label: ':browserstack: iOS 17'
timeout_in_minutes: 20
depends_on:
- "ios-test-fixture"
Expand All @@ -249,36 +174,21 @@ steps:
command:
- "--app=features/fixtures/ios/output/iOSTestApp_Release.ipa"
- "--farm=bs"
- "--device=IOS_16"
- "--device=IOS_17"
- "--fail-fast"
- "features/release/barebone_tests.feature"
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli
env:
RUBY_VERSION: "3"
concurrency: 5
concurrency_group: 'browserstack-app'
concurrency_method: eager
retry:
automatic:
- exit_status: 103 # Appium client failure
limit: 2

- label: ':browserstack: Firefox - JWP'
depends_on: "push-branch-cli-legacy"
timeout_in_minutes: 10
plugins:
docker-compose#v4.14.0:
run: browser-tests-legacy
use-aliases: true
verbose: true
command:
- "--farm=bs"
- "--browser=firefox_latest"
- "--browser=chrome_latest"
- "--fail-fast"
concurrency: 2
concurrency_group: 'browserstack'
concurrency_method: eager

- label: ':browserstack: Firefox - W3C'
- label: ':browserstack: Firefox'
depends_on: "push-branch-cli"
timeout_in_minutes: 10
plugins:
Expand Down Expand Up @@ -318,8 +228,6 @@ steps:
- "--aws-public-ip"
- "--fail-fast"
- "--no-tunnel"
env:
RUBY_VERSION: "2"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
Expand All @@ -345,17 +253,19 @@ steps:
- "--app=build/test-fixture.apk"
- "--appium-version=1.22"
- "--farm=bb"
- "--device=ANDROID_10|ANDROID_11|ANDROID_12|ANDROID_13"
- "--device=ANDROID_12|ANDROID_13|ANDROID_14|ANDROID_15"
- "--fail-fast"
- "--no-tunnel"
- "--aws-public-ip"
- "features/manual_spans.feature"
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
env:
RUBY_VERSION: "3"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
retry:
automatic:
- exit_status: 103 # Appium client failure
limit: 2

- label: ':bitbar: Appium API'
timeout_in_minutes: 20
Expand All @@ -380,16 +290,18 @@ steps:
- "--app=build/test-fixture.apk"
- "--appium-version=1.22"
- "--farm=bb"
- "--device=ANDROID_10|ANDROID_11|ANDROID_12|ANDROID_13"
- "--device=ANDROID_12|ANDROID_13|ANDROID_14|ANDROID_15"
- "--fail-fast"
- "--no-tunnel"
- "--aws-public-ip"
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
env:
RUBY_VERSION: "3"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
retry:
automatic:
- exit_status: 103 # Appium client failure
limit: 2

- label: ':bitbar: iOS'
timeout_in_minutes: 20
Expand Down Expand Up @@ -419,11 +331,13 @@ steps:
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner
cache-from:
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner:${BRANCH_NAME}-cli
env:
RUBY_VERSION: "3"
concurrency: 25
concurrency_group: 'bitbar'
concurrency_method: eager
retry:
automatic:
- exit_status: 103 # Appium client failure
limit: 2

- wait

Expand All @@ -441,11 +355,8 @@ steps:
- docker-compose#v4.14.0:
push:
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:${BUILDKITE_TAG}-cli
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v9-cli
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v10-cli
- cli:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-cli
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:${BUILDKITE_TAG}-cli-legacy
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v9-cli-legacy
- cli-legacy:855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-cli-legacy

- label: 'Push to RubyGems.org'
if: build.tag =~ /^v[0-9]{1,2}\.[0-9]+\.[0-9]+\$/
Expand Down
Loading