From 8d14b2d2739a5e739556df3973062690161448f3 Mon Sep 17 00:00:00 2001 From: Trezy Date: Sun, 5 Jul 2026 15:14:40 -0500 Subject: [PATCH] ci: add support for `next` branch Signed-off-by: Trezy --- .github/workflows/ci.yml | 21 ++++++++---- .github/workflows/merge-main-to-next.yml | 32 +++++++++++++++++++ .releaserc.json | 1 + packages/lex-agent/.releaserc.json | 1 + packages/oauth-client-browser/.releaserc.json | 1 + packages/oauth-client-node/.releaserc.json | 1 + packages/oauth-client/.releaserc.json | 1 + 7 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/merge-main-to-next.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0acf11d..1ad3051 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main, dev] + branches: [main, next, dev] pull_request: - branches: [main, dev] + branches: [main, next, dev] workflow_dispatch: inputs: server: @@ -301,6 +301,7 @@ jobs: if: >- github.event_name == 'pull_request' && github.head_ref != 'dev' + && github.head_ref != 'next' && needs.changes.outputs.server == 'true' runs-on: ${{ matrix.runs-on }} permissions: @@ -465,7 +466,7 @@ jobs: release: if: >- always() - && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') + && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/dev') && (needs.changes.outputs.server == 'true' || (github.event_name == 'workflow_dispatch' && inputs.server)) && needs.unit-tests.result == 'success' && needs.e2e-tests.result == 'success' @@ -767,7 +768,7 @@ jobs: release-oauth-client: if: >- always() - && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') + && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/dev') && (needs.changes.outputs.oauth-client == 'true' || (github.event_name == 'workflow_dispatch' && inputs.oauth-client)) && needs.test-oauth-client.result == 'success' needs: [changes, test-oauth-client] @@ -807,7 +808,7 @@ jobs: release-oauth-client-browser: if: >- always() - && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') + && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/dev') && (needs.changes.outputs.oauth-client-browser == 'true' || (github.event_name == 'workflow_dispatch' && inputs.oauth-client-browser)) && needs.test-oauth-client-browser.result == 'success' && (needs.release-oauth-client.result == 'success' || needs.changes.outputs.oauth-client != 'true') @@ -839,6 +840,8 @@ jobs: run: | if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then DIST_TAG="latest" + elif [[ "${{ github.ref }}" == "refs/heads/next" ]]; then + DIST_TAG="next" else DIST_TAG="dev" fi @@ -865,7 +868,7 @@ jobs: release-oauth-client-node: if: >- always() - && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') + && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/dev') && (needs.changes.outputs.oauth-client-node == 'true' || (github.event_name == 'workflow_dispatch' && inputs.oauth-client-node)) && needs.test-oauth-client-node.result == 'success' && (needs.release-oauth-client.result == 'success' || needs.changes.outputs.oauth-client != 'true') @@ -897,6 +900,8 @@ jobs: run: | if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then DIST_TAG="latest" + elif [[ "${{ github.ref }}" == "refs/heads/next" ]]; then + DIST_TAG="next" else DIST_TAG="dev" fi @@ -923,7 +928,7 @@ jobs: release-lex-agent: if: >- always() - && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') + && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/dev') && (needs.changes.outputs.lex-agent == 'true' || (github.event_name == 'workflow_dispatch' && inputs.lex-agent)) && needs.test-lex-agent.result == 'success' && (needs.release-oauth-client.result == 'success' || needs.changes.outputs.oauth-client != 'true') @@ -955,6 +960,8 @@ jobs: run: | if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then DIST_TAG="latest" + elif [[ "${{ github.ref }}" == "refs/heads/next" ]]; then + DIST_TAG="next" else DIST_TAG="dev" fi diff --git a/.github/workflows/merge-main-to-next.yml b/.github/workflows/merge-main-to-next.yml new file mode 100644 index 0000000..5c02f9f --- /dev/null +++ b/.github/workflows/merge-main-to-next.yml @@ -0,0 +1,32 @@ +name: Merge main to next + +on: + workflow_run: + workflows: [CI] + types: [completed] + branches: [main] + +jobs: + merge: + if: github.event.workflow_run.conclusion == 'success' + runs-on: depot-ubuntu-24.04 + permissions: + contents: write + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + ref: next + persist-credentials: false + + - name: Merge main into next + env: + GITHUB_TOKEN: ${{ secrets.DISPATCH_GH_TOKEN }} + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}" + git merge origin/main --no-edit + git push origin next diff --git a/.releaserc.json b/.releaserc.json index f031dec..ef7ac73 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,6 +1,7 @@ { "branches": [ "main", + { "name": "next", "prerelease": "next" }, { "name": "dev", "prerelease": "dev" } ], "tagFormat": "v${version}", diff --git a/packages/lex-agent/.releaserc.json b/packages/lex-agent/.releaserc.json index 667edc0..98ab64f 100644 --- a/packages/lex-agent/.releaserc.json +++ b/packages/lex-agent/.releaserc.json @@ -2,6 +2,7 @@ "extends": "semantic-release-monorepo", "branches": [ "main", + { "name": "next", "prerelease": "next" }, { "name": "dev", "prerelease": "dev" } ], "plugins": [ diff --git a/packages/oauth-client-browser/.releaserc.json b/packages/oauth-client-browser/.releaserc.json index 667edc0..98ab64f 100644 --- a/packages/oauth-client-browser/.releaserc.json +++ b/packages/oauth-client-browser/.releaserc.json @@ -2,6 +2,7 @@ "extends": "semantic-release-monorepo", "branches": [ "main", + { "name": "next", "prerelease": "next" }, { "name": "dev", "prerelease": "dev" } ], "plugins": [ diff --git a/packages/oauth-client-node/.releaserc.json b/packages/oauth-client-node/.releaserc.json index 667edc0..98ab64f 100644 --- a/packages/oauth-client-node/.releaserc.json +++ b/packages/oauth-client-node/.releaserc.json @@ -2,6 +2,7 @@ "extends": "semantic-release-monorepo", "branches": [ "main", + { "name": "next", "prerelease": "next" }, { "name": "dev", "prerelease": "dev" } ], "plugins": [ diff --git a/packages/oauth-client/.releaserc.json b/packages/oauth-client/.releaserc.json index 667edc0..98ab64f 100644 --- a/packages/oauth-client/.releaserc.json +++ b/packages/oauth-client/.releaserc.json @@ -2,6 +2,7 @@ "extends": "semantic-release-monorepo", "branches": [ "main", + { "name": "next", "prerelease": "next" }, { "name": "dev", "prerelease": "dev" } ], "plugins": [ -- 2.51.2