From 841bace5f06d65751b5642cef10012240d8d0868 Mon Sep 17 00:00:00 2001 From: bluwy Date: Fri, 29 Nov 2024 12:28:39 +0800 Subject: [PATCH 1/2] Fix sync-examples workflow --- .github/workflows/sync-examples.yml | 42 ++++++++++++++--------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/.github/workflows/sync-examples.yml b/.github/workflows/sync-examples.yml index 8603a951e8a9..c214a80fb582 100644 --- a/.github/workflows/sync-examples.yml +++ b/.github/workflows/sync-examples.yml @@ -3,6 +3,9 @@ name: Sync examples on: workflow_dispatch: inputs: + checkout-ref: + type: string + required: false skip-unchanged-check: type: boolean default: false @@ -31,16 +34,25 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 2 # fetch 2 to compare with previous commit for changes + ref: ${{ inputs.checkout-ref }} - name: Detect changesets uses: bluwy/detect-changesets-action@v1 id: detect + - name: Get pre mode of changesets + id: pre + run: | + if [ -f ./.changeset/pre.json ]; then + pre_value=$(jq -r '.tag' ./.changeset/pre.json) + echo "value=$pre_value" >> $GITHUB_OUTPUT + fi + # We only do sync if there are no changesets, so we don't accidentally allow users # to clone examples that may rely on unreleased code - - name: Sync from main branch to latest and examples/* branches - if: steps.detect.outputs.has-changesets == 'false' && github.ref == 'refs/heads/main' + - name: Sync stable to latest and examples/* branches + if: steps.detect.outputs.has-changesets == 'false' && steps.pre.outputs.value == '' uses: bluwy/auto-branch-sync-action@v1 with: map: | @@ -49,38 +61,24 @@ jobs: skip-unchanged-check: ${{ inputs.skip-unchanged-check == true }} dry-run: ${{ inputs.dry-run == true }} - - name: Check .changeset/pre.json for matching tag - if: steps.detect.outputs.has-changesets == 'false' && github.ref == 'refs/heads/next' - id: check-pre-mode - run: | - if [ -f ./.changeset/pre.json ]; then - if grep -q '"tag": "alpha"' ./.changeset/pre.json; then - echo "alpha=true" >> $GITHUB_OUTPUT - elif grep -q '"tag": "beta"' ./.changeset/pre.json; then - echo "beta=true" >> $GITHUB_OUTPUT - elif grep -q '"tag": "rc"' ./.changeset/pre.json; then - echo "rc=true" >> $GITHUB_OUTPUT - fi - fi - - - name: Sync from next branch to alpha branch - if: steps.detect.outputs.has-changesets == 'false' && steps.check-pre-mode.outputs.alpha == 'true' + - name: Sync prerelease to alpha branch + if: steps.detect.outputs.has-changesets == 'false' && steps.pre.outputs.value == 'alpha' uses: bluwy/auto-branch-sync-action@v1 with: map: / -> alpha skip-unchanged-check: ${{ inputs.skip-unchanged-check == true }} dry-run: ${{ inputs.dry-run == true }} - - name: Sync from next branch to beta branch - if: steps.detect.outputs.has-changesets == 'false' && steps.check-pre-mode.outputs.beta == 'true' + - name: Sync prerelease to beta branch + if: steps.detect.outputs.has-changesets == 'false' && steps.pre.outputs.value == 'beta' uses: bluwy/auto-branch-sync-action@v1 with: map: / -> beta skip-unchanged-check: ${{ inputs.skip-unchanged-check == true }} dry-run: ${{ inputs.dry-run == true }} - - name: Sync from next branch to rc branch - if: steps.detect.outputs.has-changesets == 'false' && steps.check-pre-mode.outputs.rc == 'true' + - name: Sync prerelease to rc branch + if: steps.detect.outputs.has-changesets == 'false' && steps.pre.outputs.value == 'rc' uses: bluwy/auto-branch-sync-action@v1 with: map: / -> rc From 2e1b602e273fc8c104f87a2b5dc085441bde8d36 Mon Sep 17 00:00:00 2001 From: bluwy Date: Fri, 29 Nov 2024 12:32:28 +0800 Subject: [PATCH 2/2] Add safe guard --- .github/workflows/sync-examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-examples.yml b/.github/workflows/sync-examples.yml index c214a80fb582..0f8d42bccaef 100644 --- a/.github/workflows/sync-examples.yml +++ b/.github/workflows/sync-examples.yml @@ -52,7 +52,7 @@ jobs: # to clone examples that may rely on unreleased code - name: Sync stable to latest and examples/* branches - if: steps.detect.outputs.has-changesets == 'false' && steps.pre.outputs.value == '' + if: steps.detect.outputs.has-changesets == 'false' && github.ref == 'refs/heads/main' && steps.pre.outputs.value == '' uses: bluwy/auto-branch-sync-action@v1 with: map: |