From e92e29408d7ffd31b33dc7a740b9aaa1611b1607 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Fri, 12 Jun 2026 15:16:31 -0700 Subject: [PATCH 1/9] feat: attach prod test collection IDs to PR and smoke test uploads Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/perform_smoke_test/action.yaml | 3 ++- .github/workflows/pull_request.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/actions/perform_smoke_test/action.yaml b/.github/actions/perform_smoke_test/action.yaml index c7e90535..68571f9f 100644 --- a/.github/actions/perform_smoke_test/action.yaml +++ b/.github/actions/perform_smoke_test/action.yaml @@ -208,7 +208,8 @@ runs: ./${{ inputs.cli-binary-location }} upload \ --org-url-slug trunk \ --junit-paths "${{ github.workspace }}/target/**/*junit.xml" \ - --token ${{ inputs.production-api-token }} + --token ${{ inputs.production-api-token }} \ + --test-collection-short-id 4B2wfoEU - name: Upload to production with public repo id id: production-upload-public-repo-id diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 89f18484..ada55312 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -216,7 +216,8 @@ jobs: target/${{ matrix.platform.target }}/release/trunk-analytics-cli upload \ --junit-paths ${{ github.workspace }}/target/**/*junit.xml \ --org-url-slug trunk \ - --token ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} + --token ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} \ + --test-collection-short-id EWhNPVic trunk_check_runner: name: Trunk Check runner [linux] From 54f601e4876e87adea8a8533debd8023821abde9 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Fri, 12 Jun 2026 15:27:12 -0700 Subject: [PATCH 2/9] feat: wire analytics-cli-ruby-gem collection ID via TRUNK_TEST_COLLECTION_ID Adds test-collection-id input to test_ruby_gem_uploads action and passes TRUNK_TEST_COLLECTION_ID through all rspec and knapsack upload steps. Staging (T5yKSn9h) wired in ruby.yml and release_ruby_gem.yml; both staging and prod (BiBP2neA) wired in smoke_test.yml and smoke_test_main.yml. Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/test_ruby_gem_uploads/action.yaml | 7 +++++++ .github/workflows/release_ruby_gem.yml | 1 + .github/workflows/ruby.yml | 2 ++ .github/workflows/smoke_test.yml | 2 ++ .github/workflows/smoke_test_main.yml | 2 ++ 5 files changed, 14 insertions(+) diff --git a/.github/actions/test_ruby_gem_uploads/action.yaml b/.github/actions/test_ruby_gem_uploads/action.yaml index 23a418b2..fb18faeb 100644 --- a/.github/actions/test_ruby_gem_uploads/action.yaml +++ b/.github/actions/test_ruby_gem_uploads/action.yaml @@ -27,6 +27,9 @@ inputs: knapsack-pro-test-suite-token-rspec: description: Optional Knapsack Pro test suite token for RSpec required: true + test-collection-id: + description: Optional Trunk test collection ID + required: false runs: using: composite @@ -83,6 +86,7 @@ runs: TRUNK_PUBLIC_API_ADDRESS: ${{ inputs.trunk-public-api-address }} TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_API_TOKEN: ${{ inputs.trunk-token }} + TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} - name: Run variant quarantine test without variant (should fail - not quarantined) id: run-variant-test-no-variant @@ -102,6 +106,7 @@ runs: TRUNK_PUBLIC_API_ADDRESS: ${{ inputs.trunk-public-api-address }} TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_API_TOKEN: ${{ inputs.trunk-token }} + TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} TRUNK_VARIANT: "" - name: Run variant quarantine test with variant (should pass - quarantined) @@ -122,6 +127,7 @@ runs: TRUNK_PUBLIC_API_ADDRESS: ${{ inputs.trunk-public-api-address }} TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_API_TOKEN: ${{ inputs.trunk-token }} + TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} TRUNK_VARIANT: smoke-test-variant - name: Run quarantine lookup failure abort test (should fail fast, skip slow_test) @@ -165,6 +171,7 @@ runs: TRUNK_API_TOKEN: ${{ inputs.trunk-token }} TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_PUBLIC_API_ADDRESS: ${{ inputs.trunk-public-api-address }} + TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} TRUNK_LOCAL_UPLOAD_DIR: bundles run: | set -euo pipefail diff --git a/.github/workflows/release_ruby_gem.yml b/.github/workflows/release_ruby_gem.yml index e329ca0c..4a1cfb73 100644 --- a/.github/workflows/release_ruby_gem.yml +++ b/.github/workflows/release_ruby_gem.yml @@ -135,6 +135,7 @@ jobs: platform: ${{ matrix.platform.name }} artifact-pattern: cross-gem-${{ matrix.platform.name }} knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: T5yKSn9h publish_ruby_gem: runs-on: ubuntu-latest diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index ea6b39b5..f4bf3b11 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -35,6 +35,7 @@ jobs: TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io TRUNK_ORG_URL_SLUG: trunk-staging-org TRUNK_API_TOKEN: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} + TRUNK_TEST_COLLECTION_ID: T5yKSn9h - name: Validate ruby platform gem if: "!cancelled()" @@ -121,3 +122,4 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: T5yKSn9h diff --git a/.github/workflows/smoke_test.yml b/.github/workflows/smoke_test.yml index 73b4859b..30bba7aa 100644 --- a/.github/workflows/smoke_test.yml +++ b/.github/workflows/smoke_test.yml @@ -176,6 +176,7 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: T5yKSn9h test_ruby_gem_production: name: Test Ruby gem on production @@ -201,6 +202,7 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: BiBP2neA production-slack-workflow-status: if: always() && github.ref == 'refs/heads/main' && (needs.build_cli.outputs.production-success != 'true' || needs.test_ruby_gem_production.result != 'success') diff --git a/.github/workflows/smoke_test_main.yml b/.github/workflows/smoke_test_main.yml index 0ff067bf..11960c82 100644 --- a/.github/workflows/smoke_test_main.yml +++ b/.github/workflows/smoke_test_main.yml @@ -229,6 +229,7 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: T5yKSn9h test_ruby_gem_production: name: Test Ruby gem on production @@ -254,6 +255,7 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + test-collection-id: BiBP2neA production-slack-workflow-status: if: always() && github.ref == 'refs/heads/main' && (needs.test_cli.result != 'success' || needs.test_ruby_gem_production.result != 'success') From bcebf6dc03732c78566f8df2e99ffe47b441eec9 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Fri, 12 Jun 2026 15:32:36 -0700 Subject: [PATCH 3/9] chore: rename test-collection-short-id to test-collection-id Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/perform_smoke_test/action.yaml | 8 ++++---- .github/workflows/pull_request.yml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/actions/perform_smoke_test/action.yaml b/.github/actions/perform_smoke_test/action.yaml index 68571f9f..89f63cad 100644 --- a/.github/actions/perform_smoke_test/action.yaml +++ b/.github/actions/perform_smoke_test/action.yaml @@ -91,7 +91,7 @@ runs: --xcresult-path smoke-test/swift/TestResults.xcresult \ --token ${{ inputs.staging-api-token }} \ --test-process-exit-code $EXIT_CODE \ - --test-collection-short-id z2dzjLHm + --test-collection-id z2dzjLHm env: TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io @@ -106,7 +106,7 @@ runs: --org-url-slug trunk-staging-org \ --junit-paths "${{ github.workspace }}/target/**/*junit.xml" \ --token ${{ inputs.staging-api-token }} \ - --test-collection-short-id z2dzjLHm + --test-collection-id z2dzjLHm - name: Upload to staging with public repo id id: staging-upload-public-repo-id @@ -139,7 +139,7 @@ runs: --junit-paths "${{ github.workspace }}/target/**/*junit.xml" \ --token ${{ inputs.staging-api-token }} \ --variant smoke-test-variant \ - --test-collection-short-id z2dzjLHm + --test-collection-id z2dzjLHm EXIT_CODE=$? if [ $EXIT_CODE -eq 0 ]; then echo "ERROR: Expected upload with variant to fail, but it succeeded" @@ -209,7 +209,7 @@ runs: --org-url-slug trunk \ --junit-paths "${{ github.workspace }}/target/**/*junit.xml" \ --token ${{ inputs.production-api-token }} \ - --test-collection-short-id 4B2wfoEU + --test-collection-id 4B2wfoEU - name: Upload to production with public repo id id: production-upload-public-repo-id diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ada55312..90f0de3b 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -205,7 +205,7 @@ jobs: --org-url-slug trunk-staging-org \ --token ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} \ --test-process-exit-code ${{ steps.extract.outputs.test-step-outcome }} \ - --test-collection-short-id 2tYJWMu7 + --test-collection-id 2tYJWMu7 - name: Upload results to prod using built CLI shell: bash @@ -217,7 +217,7 @@ jobs: --junit-paths ${{ github.workspace }}/target/**/*junit.xml \ --org-url-slug trunk \ --token ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} \ - --test-collection-short-id EWhNPVic + --test-collection-id EWhNPVic trunk_check_runner: name: Trunk Check runner [linux] From 1905cd3418a24b1855448ea4946e43f8d44420d9 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 16:40:41 -0700 Subject: [PATCH 4/9] fix: remove duplicate test-collection-id keys introduced during rename Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/test_ruby_gem_uploads/action.yaml | 3 --- .github/workflows/release_ruby_gem.yml | 1 - .github/workflows/ruby.yml | 1 - .github/workflows/smoke_test.yml | 2 -- .github/workflows/smoke_test_main.yml | 2 -- 5 files changed, 9 deletions(-) diff --git a/.github/actions/test_ruby_gem_uploads/action.yaml b/.github/actions/test_ruby_gem_uploads/action.yaml index 9bb01e3a..fb18faeb 100644 --- a/.github/actions/test_ruby_gem_uploads/action.yaml +++ b/.github/actions/test_ruby_gem_uploads/action.yaml @@ -24,9 +24,6 @@ inputs: platform: description: The platform that the gem was built for required: true - test-collection-id: - description: Optional 8 character alphanumeric ID for a test collection - required: false knapsack-pro-test-suite-token-rspec: description: Optional Knapsack Pro test suite token for RSpec required: true diff --git a/.github/workflows/release_ruby_gem.yml b/.github/workflows/release_ruby_gem.yml index 8d9ad675..b17096ca 100644 --- a/.github/workflows/release_ruby_gem.yml +++ b/.github/workflows/release_ruby_gem.yml @@ -136,7 +136,6 @@ jobs: platform: ${{ matrix.platform.name }} artifact-pattern: cross-gem-${{ matrix.platform.name }} knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: T5yKSn9h publish_ruby_gem: runs-on: ubuntu-latest diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index f60bb8b0..3badd838 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -123,4 +123,3 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: T5yKSn9h diff --git a/.github/workflows/smoke_test.yml b/.github/workflows/smoke_test.yml index 5ea59e8c..fa14b9be 100644 --- a/.github/workflows/smoke_test.yml +++ b/.github/workflows/smoke_test.yml @@ -177,7 +177,6 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: T5yKSn9h test_ruby_gem_production: name: Test Ruby gem on production @@ -204,7 +203,6 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: BiBP2neA production-slack-workflow-status: if: always() && github.ref == 'refs/heads/main' && (needs.build_cli.outputs.production-success != 'true' || needs.test_ruby_gem_production.result != 'success') diff --git a/.github/workflows/smoke_test_main.yml b/.github/workflows/smoke_test_main.yml index 4423620c..b0180845 100644 --- a/.github/workflows/smoke_test_main.yml +++ b/.github/workflows/smoke_test_main.yml @@ -230,7 +230,6 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: T5yKSn9h test_ruby_gem_production: name: Test Ruby gem on production @@ -257,7 +256,6 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - test-collection-id: BiBP2neA production-slack-workflow-status: if: always() && github.ref == 'refs/heads/main' && (needs.test_cli.result != 'success' || needs.test_ruby_gem_production.result != 'success') From d838ccbf9d1b6f13243ebd62b7131ded445b474b Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 16:44:22 -0700 Subject: [PATCH 5/9] fix: restore test-collection-id input position in action.yaml Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/test_ruby_gem_uploads/action.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/test_ruby_gem_uploads/action.yaml b/.github/actions/test_ruby_gem_uploads/action.yaml index fb18faeb..4635e760 100644 --- a/.github/actions/test_ruby_gem_uploads/action.yaml +++ b/.github/actions/test_ruby_gem_uploads/action.yaml @@ -24,12 +24,12 @@ inputs: platform: description: The platform that the gem was built for required: true - knapsack-pro-test-suite-token-rspec: - description: Optional Knapsack Pro test suite token for RSpec - required: true test-collection-id: description: Optional Trunk test collection ID required: false + knapsack-pro-test-suite-token-rspec: + description: Optional Knapsack Pro test suite token for RSpec + required: true runs: using: composite From a0369ad2acc9cbe3895535b05f3269d8faef5b7d Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 16:44:53 -0700 Subject: [PATCH 6/9] fix: restore original test-collection-id description in action.yaml Co-Authored-By: Claude Sonnet 4.6 --- .github/actions/test_ruby_gem_uploads/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/test_ruby_gem_uploads/action.yaml b/.github/actions/test_ruby_gem_uploads/action.yaml index 4635e760..3d1cfc9b 100644 --- a/.github/actions/test_ruby_gem_uploads/action.yaml +++ b/.github/actions/test_ruby_gem_uploads/action.yaml @@ -25,7 +25,7 @@ inputs: description: The platform that the gem was built for required: true test-collection-id: - description: Optional Trunk test collection ID + description: Optional 8 character alphanumeric ID for a test collection required: false knapsack-pro-test-suite-token-rspec: description: Optional Knapsack Pro test suite token for RSpec From bc83242dd0d8eb82df5404aa4910beadb6672ce7 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 17:54:29 -0700 Subject: [PATCH 7/9] feat: add prod uploads and smoke test collection uploads for ruby gem - Add variant input to test_ruby_gem_uploads action, threaded through to regular tests and knapsack steps - release_ruby_gem.yml: add prod upload with variant per matrix combination - ruby.yml build job: run tests once with TRUNK_LOCAL_UPLOAD_DIR, upload bundle to all four collections via CLI - ruby.yml test-ruby-gem-uploads job: add prod and smoke test collection uploads, add names to all action steps Co-Authored-By: Claude Sonnet 4.6 --- .../actions/test_ruby_gem_uploads/action.yaml | 5 ++ .github/workflows/release_ruby_gem.yml | 13 +++ .github/workflows/ruby.yml | 89 ++++++++++++++++++- 3 files changed, 103 insertions(+), 4 deletions(-) diff --git a/.github/actions/test_ruby_gem_uploads/action.yaml b/.github/actions/test_ruby_gem_uploads/action.yaml index 3d1cfc9b..900c6b02 100644 --- a/.github/actions/test_ruby_gem_uploads/action.yaml +++ b/.github/actions/test_ruby_gem_uploads/action.yaml @@ -27,6 +27,9 @@ inputs: test-collection-id: description: Optional 8 character alphanumeric ID for a test collection required: false + variant: + description: Optional variant label to distinguish uploads within a matrix + required: false knapsack-pro-test-suite-token-rspec: description: Optional Knapsack Pro test suite token for RSpec required: true @@ -87,6 +90,7 @@ runs: TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_API_TOKEN: ${{ inputs.trunk-token }} TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} + TRUNK_VARIANT: ${{ inputs.variant }} - name: Run variant quarantine test without variant (should fail - not quarantined) id: run-variant-test-no-variant @@ -172,6 +176,7 @@ runs: TRUNK_ORG_URL_SLUG: ${{ inputs.trunk-org-slug }} TRUNK_PUBLIC_API_ADDRESS: ${{ inputs.trunk-public-api-address }} TRUNK_TEST_COLLECTION_ID: ${{ inputs.test-collection-id }} + TRUNK_VARIANT: ${{ inputs.variant }} TRUNK_LOCAL_UPLOAD_DIR: bundles run: | set -euo pipefail diff --git a/.github/workflows/release_ruby_gem.yml b/.github/workflows/release_ruby_gem.yml index b17096ca..b0074094 100644 --- a/.github/workflows/release_ruby_gem.yml +++ b/.github/workflows/release_ruby_gem.yml @@ -134,6 +134,19 @@ jobs: trunk-token: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} test-collection-id: T5yKSn9h platform: ${{ matrix.platform.name }} + variant: ${{ matrix.platform.name }}-ruby${{ matrix.ruby-version }} + artifact-pattern: cross-gem-${{ matrix.platform.name }} + knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + + - uses: ./.github/actions/test_ruby_gem_uploads + with: + ruby-version: ${{ matrix.ruby-version }} + trunk-token: ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} + trunk-public-api-address: https://api.trunk.io + trunk-org-slug: trunk + test-collection-id: BiBP2neA + platform: ${{ matrix.platform.name }} + variant: ${{ matrix.platform.name }}-ruby${{ matrix.ruby-version }} artifact-pattern: cross-gem-${{ matrix.platform.name }} knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 3badd838..66360420 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -25,17 +25,61 @@ jobs: - name: Setup Ruby uses: ./.github/actions/setup_ruby + - name: Build CLI + run: cargo build -p trunk-analytics-cli + - name: Test ruby package if: "!cancelled()" run: | bundle install bundle exec rake test working-directory: rspec-trunk-flaky-tests + env: + TRUNK_LOCAL_UPLOAD_DIR: ../upload_bundle + + - name: Upload ruby package results → analytics-cli-ruby-gem (staging) + if: "!cancelled()" + run: | + ./target/debug/trunk-analytics-cli upload \ + --org-url-slug trunk-staging-org \ + --token ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} \ + --test-reports ./upload_bundle/trunk_output.bin \ + --test-collection-id T5yKSn9h + env: + TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io + + - name: Upload ruby package results → analytics-cli-ruby-gem (prod) + if: "!cancelled()" + run: | + ./target/debug/trunk-analytics-cli upload \ + --org-url-slug trunk \ + --token ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} \ + --test-reports ./upload_bundle/trunk_output.bin \ + --test-collection-id BiBP2neA + env: + TRUNK_PUBLIC_API_ADDRESS: https://api.trunk.io + + - name: Upload ruby package results → analytics-cli-smoke-tests (staging) + if: "!cancelled()" + run: | + ./target/debug/trunk-analytics-cli upload \ + --org-url-slug trunk-staging-org \ + --token ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} \ + --test-reports ./upload_bundle/trunk_output.bin \ + --test-collection-id z2dzjLHm env: TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io - TRUNK_ORG_URL_SLUG: trunk-staging-org - TRUNK_API_TOKEN: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} - TRUNK_TEST_COLLECTION_ID: T5yKSn9h + + - name: Upload ruby package results → analytics-cli-smoke-tests (prod) + if: "!cancelled()" + run: | + ./target/debug/trunk-analytics-cli upload \ + --org-url-slug trunk \ + --token ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} \ + --test-reports ./upload_bundle/trunk_output.bin \ + --test-collection-id 4B2wfoEU + env: + TRUNK_PUBLIC_API_ADDRESS: https://api.trunk.io - name: Validate ruby platform gem if: "!cancelled()" @@ -113,7 +157,8 @@ jobs: name: ruby-gem-pr path: .github/actions/test_ruby_gem_uploads/ - - uses: ./.github/actions/test_ruby_gem_uploads + - name: Test ruby gem uploads → analytics-cli-ruby-gem (staging) + uses: ./.github/actions/test_ruby_gem_uploads with: ruby-version: "3.4" trunk-token: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} @@ -123,3 +168,39 @@ jobs: platform: x86_64-linux artifact-pattern: "" knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + + - name: Test ruby gem uploads → analytics-cli-ruby-gem (prod) + uses: ./.github/actions/test_ruby_gem_uploads + with: + ruby-version: "3.4" + trunk-token: ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} + trunk-public-api-address: https://api.trunk.io + trunk-org-slug: trunk + test-collection-id: BiBP2neA + platform: x86_64-linux + artifact-pattern: "" + knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + + - name: Test ruby gem uploads → analytics-cli-smoke-tests (staging) + uses: ./.github/actions/test_ruby_gem_uploads + with: + ruby-version: "3.4" + trunk-token: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} + trunk-public-api-address: https://api.trunk-staging.io + trunk-org-slug: trunk-staging-org + test-collection-id: z2dzjLHm + platform: x86_64-linux + artifact-pattern: "" + knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + + - name: Test ruby gem uploads → analytics-cli-smoke-tests (prod) + uses: ./.github/actions/test_ruby_gem_uploads + with: + ruby-version: "3.4" + trunk-token: ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} + trunk-public-api-address: https://api.trunk.io + trunk-org-slug: trunk + test-collection-id: 4B2wfoEU + platform: x86_64-linux + artifact-pattern: "" + knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} From f782e8722a38e7f6d8e8e499ca25ea6043f9df48 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 18:02:11 -0700 Subject: [PATCH 8/9] chore: add names to test_ruby_gem_uploads steps in release_ruby_gem.yml Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release_ruby_gem.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release_ruby_gem.yml b/.github/workflows/release_ruby_gem.yml index b0074094..518e0685 100644 --- a/.github/workflows/release_ruby_gem.yml +++ b/.github/workflows/release_ruby_gem.yml @@ -128,7 +128,8 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/test_ruby_gem_uploads + - name: Test ruby gem uploads → analytics-cli-ruby-gem (staging) + uses: ./.github/actions/test_ruby_gem_uploads with: ruby-version: ${{ matrix.ruby-version }} trunk-token: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} @@ -138,7 +139,8 @@ jobs: artifact-pattern: cross-gem-${{ matrix.platform.name }} knapsack-pro-test-suite-token-rspec: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} - - uses: ./.github/actions/test_ruby_gem_uploads + - name: Test ruby gem uploads → analytics-cli-ruby-gem (prod) + uses: ./.github/actions/test_ruby_gem_uploads with: ruby-version: ${{ matrix.ruby-version }} trunk-token: ${{ secrets.TRUNK_PROD_ORG_API_TOKEN }} From ee53b16fed9ffd23e57d6f3b6ba98029952dd9e5 Mon Sep 17 00:00:00 2001 From: Dylan Frankland Date: Mon, 15 Jun 2026 18:06:14 -0700 Subject: [PATCH 9/9] chore: explicitly set trunk-public-api-address and trunk-org-slug on staging upload in release_ruby_gem.yml Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/release_ruby_gem.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release_ruby_gem.yml b/.github/workflows/release_ruby_gem.yml index 518e0685..253e7427 100644 --- a/.github/workflows/release_ruby_gem.yml +++ b/.github/workflows/release_ruby_gem.yml @@ -133,6 +133,8 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} trunk-token: ${{ secrets.TRUNK_STAGING_ORG_API_TOKEN }} + trunk-public-api-address: https://api.trunk-staging.io + trunk-org-slug: trunk-staging-org test-collection-id: T5yKSn9h platform: ${{ matrix.platform.name }} variant: ${{ matrix.platform.name }}-ruby${{ matrix.ruby-version }}