From 9cb8e3612ce2248305de3f6fea5bda729f883b94 Mon Sep 17 00:00:00 2001 From: Christopher Daniel Date: Thu, 6 Feb 2025 20:50:42 +0530 Subject: [PATCH] chore: cext-4130: update workflow to publish beta --- .github/workflows/publish-to-npm.yml | 67 +++++++++++++++++++++++----- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish-to-npm.yml b/.github/workflows/publish-to-npm.yml index 2023346..4b49e1f 100644 --- a/.github/workflows/publish-to-npm.yml +++ b/.github/workflows/publish-to-npm.yml @@ -1,24 +1,71 @@ -name: npm-publish +name: publish-to-npm on: pull_request: - types: [closed] + types: [ closed ] branches: - main + - develop + - epic/** jobs: - npm-publish: - name: npm-publish + publish: if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Set up Node.js + - name: Checkout source + uses: actions/checkout@v4 + + - name: Setup node uses: actions/setup-node@v3 with: node-version: 18 - - name: Install dependencies - run: npm install - - name: Publish if version has been updated + + - name: NPM install + run: yarn install --frozen-lockfile + + - name: Get version from package.json + id: get_version + run: | + version=$(jq -r '.version' package.json) + echo "version=$version" >> $GITHUB_OUTPUT + echo "Read version $version from package.json" + + - name: Verify version corresponds to branch + id: verify_version + run: | + target_branch="${GITHUB_REF#refs/heads/}" + version_tag="" + + if [ "$target_branch" == "main" ]; then + version_tag="latest" + + elif [ "$target_branch" == "develop" ]; then + if [[ "${{ steps.get_version.outputs.version }}" =~ beta ]]; then + version_tag="beta" + else + echo "Will not publish. Version on branch \"$target_branch\" is not beta."; + exit 0; + fi + + elif [[ $target_branch == epic/* ]]; then + if [[ "${{ steps.get_version.outputs.version }}" =~ alpha ]]; then + version_tag="alpha" + else + echo "Will not publish. Version on branch \"$target_branch\" is not alpha."; + exit 0; + fi + + else + echo "Will not publish. Branch \"$target_branch\" is not designated for publish."; + exit 0; + fi + + echo "version_tag=$version_tag" >> $GITHUB_OUTPUT; + echo "Will publish version ${{ steps.get_version.outputs.version }} as $version_tag" + + - name: Publish to npm + if: ${{ steps.verify_version.outputs.version_tag != '' }} uses: JS-DevTools/npm-publish@v1 with: - access: "public" token: ${{ secrets.ADOBE_BOT_NPM_TOKEN }} + access: 'public' + tag: ${{ steps.verify_version.outputs.version_tag }}