From a03b0ce4e619af79e94677fc33b5e9dd99d4eca7 Mon Sep 17 00:00:00 2001 From: Michael Grosse Huelsewiesche Date: Mon, 20 Apr 2026 14:12:27 -0400 Subject: [PATCH 1/2] ci: add workflow to publish e2e-cli builds to sdk-e2e-tests On merge to master, builds both node and browser e2e-cli tools and pushes them to the cli-builds branch of sdk-e2e-tests for consumption by mme-e2e and other integration test systems. --- .github/workflows/publish-e2e-cli.yml | 84 +++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/publish-e2e-cli.yml diff --git a/.github/workflows/publish-e2e-cli.yml b/.github/workflows/publish-e2e-cli.yml new file mode 100644 index 000000000..45175db82 --- /dev/null +++ b/.github/workflows/publish-e2e-cli.yml @@ -0,0 +1,84 @@ +# Publish E2E CLI builds to sdk-e2e-tests cli-builds branch +# +# On merge to master, builds the node and browser e2e-cli tools +# and pushes them to the cli-builds branch of sdk-e2e-tests. + +name: Publish E2E CLI + +on: + push: + branches: [master] + paths: + - 'packages/node/e2e-cli/**' + - 'packages/browser/e2e-cli/**' + - 'packages/node/src/**' + - 'packages/browser/src/**' + - 'packages/core/src/**' + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout SDK + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: yarn install + + - name: Build SDK packages + run: yarn build + + - name: Build node e2e-cli + working-directory: packages/node/e2e-cli + run: | + npm install + npm run build + + - name: Build browser e2e-cli + working-directory: packages/browser/e2e-cli + run: | + npm install + npm run build + + - name: Checkout sdk-e2e-tests (cli-builds branch) + uses: actions/checkout@v4 + with: + repository: segmentio/sdk-e2e-tests + ref: cli-builds + token: ${{ secrets.E2E_TESTS_TOKEN }} + path: sdk-e2e-tests-builds + fetch-depth: 1 + + - name: Copy node CLI artifacts + run: | + rm -rf sdk-e2e-tests-builds/analytics-next-node + mkdir -p sdk-e2e-tests-builds/analytics-next-node + cp -r packages/node/e2e-cli/dist sdk-e2e-tests-builds/analytics-next-node/ + cp packages/node/e2e-cli/package.json sdk-e2e-tests-builds/analytics-next-node/ + + - name: Copy browser CLI artifacts + run: | + rm -rf sdk-e2e-tests-builds/analytics-next-browser + mkdir -p sdk-e2e-tests-builds/analytics-next-browser + cp -r packages/browser/e2e-cli/dist sdk-e2e-tests-builds/analytics-next-browser/ + cp packages/browser/e2e-cli/package.json sdk-e2e-tests-builds/analytics-next-browser/ + + - name: Push to cli-builds branch + working-directory: sdk-e2e-tests-builds + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add -A + # Only commit and push if there are changes + if git diff --cached --quiet; then + echo "No changes to CLI builds" + else + git commit -m "update analytics-next CLI builds (${GITHUB_SHA::8})" + git push + fi From 1bff734d8936c69859f8525e5180f71f4c4b25b2 Mon Sep 17 00:00:00 2001 From: Michael Grosse Huelsewiesche Date: Tue, 21 Apr 2026 13:01:38 -0400 Subject: [PATCH 2/2] ci: switch to GitHub artifacts instead of cli-builds branch --- .github/workflows/publish-e2e-cli.yml | 61 ++++++++++++--------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/.github/workflows/publish-e2e-cli.yml b/.github/workflows/publish-e2e-cli.yml index 45175db82..deb7623d2 100644 --- a/.github/workflows/publish-e2e-cli.yml +++ b/.github/workflows/publish-e2e-cli.yml @@ -1,7 +1,7 @@ -# Publish E2E CLI builds to sdk-e2e-tests cli-builds branch +# Publish E2E CLI builds as GitHub Actions artifacts # -# On merge to master, builds the node and browser e2e-cli tools -# and pushes them to the cli-builds branch of sdk-e2e-tests. +# On merge to master (or monthly refresh), builds the node and browser +# e2e-cli tools and uploads them as artifacts. name: Publish E2E CLI @@ -14,6 +14,8 @@ on: - 'packages/node/src/**' - 'packages/browser/src/**' - 'packages/core/src/**' + schedule: + - cron: '0 0 1 * *' workflow_dispatch: jobs: @@ -46,39 +48,28 @@ jobs: npm install npm run build - - name: Checkout sdk-e2e-tests (cli-builds branch) - uses: actions/checkout@v4 - with: - repository: segmentio/sdk-e2e-tests - ref: cli-builds - token: ${{ secrets.E2E_TESTS_TOKEN }} - path: sdk-e2e-tests-builds - fetch-depth: 1 - - - name: Copy node CLI artifacts + - name: Prepare node artifact run: | - rm -rf sdk-e2e-tests-builds/analytics-next-node - mkdir -p sdk-e2e-tests-builds/analytics-next-node - cp -r packages/node/e2e-cli/dist sdk-e2e-tests-builds/analytics-next-node/ - cp packages/node/e2e-cli/package.json sdk-e2e-tests-builds/analytics-next-node/ + mkdir -p artifacts/analytics-next-node + cp -r packages/node/e2e-cli/dist artifacts/analytics-next-node/ + cp packages/node/e2e-cli/package.json artifacts/analytics-next-node/ - - name: Copy browser CLI artifacts + - name: Prepare browser artifact run: | - rm -rf sdk-e2e-tests-builds/analytics-next-browser - mkdir -p sdk-e2e-tests-builds/analytics-next-browser - cp -r packages/browser/e2e-cli/dist sdk-e2e-tests-builds/analytics-next-browser/ - cp packages/browser/e2e-cli/package.json sdk-e2e-tests-builds/analytics-next-browser/ + mkdir -p artifacts/analytics-next-browser + cp -r packages/browser/e2e-cli/dist artifacts/analytics-next-browser/ + cp packages/browser/e2e-cli/package.json artifacts/analytics-next-browser/ - - name: Push to cli-builds branch - working-directory: sdk-e2e-tests-builds - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add -A - # Only commit and push if there are changes - if git diff --cached --quiet; then - echo "No changes to CLI builds" - else - git commit -m "update analytics-next CLI builds (${GITHUB_SHA::8})" - git push - fi + - name: Upload node CLI artifact + uses: actions/upload-artifact@v4 + with: + name: e2e-cli-node + path: artifacts/analytics-next-node/ + retention-days: 90 + + - name: Upload browser CLI artifact + uses: actions/upload-artifact@v4 + with: + name: e2e-cli-browser + path: artifacts/analytics-next-browser/ + retention-days: 90