diff --git a/.github/workflows/beta-release.yml b/.github/workflows/beta-release.yml index 6ea8ed5c8b4..966b05e463f 100644 --- a/.github/workflows/beta-release.yml +++ b/.github/workflows/beta-release.yml @@ -21,11 +21,32 @@ jobs: git config --global user.email "support+actions@github.com" git config --global user.name "github-actions-bot" + - name: Get current package version and latest beta number + id: version-info + run: | + # Fetch the latest beta version + LATEST_BETA=$(npm view @spectrum-web-components/bundle --tag beta version || echo "none") + echo "Latest beta: $LATEST_BETA" + + if [[ $LATEST_BETA == *beta* ]]; then + # Extract beta number + BETA_NUMBER=$(echo $LATEST_BETA | grep -oP 'beta\.\K\d+') + # Increment the beta number + NEXT_BETA_NUMBER=$((BETA_NUMBER + 1)) + else + # Start with beta.0 if no beta version exists + NEXT_BETA_NUMBER=0 + fi + + echo "Next beta number: $NEXT_BETA_NUMBER" + echo "next_beta_number=$NEXT_BETA_NUMBER" >> $GITHUB_OUTPUT + - name: Update package versions for beta release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NEXT_BETA_NUMBER: ${{ steps.version-info.outputs.next_beta_number }} run: | - yarn changeset pre enter beta + yarn changeset pre enter beta.$NEXT_BETA_NUMBER # Apply the changeset with specific beta tag yarn changeset version yarn lint:versions --fix @@ -43,6 +64,7 @@ jobs: run: | git add . git commit -am "chore: publish beta version" + yarn changeset pre exit yarn prepublishOnly - yarn changeset publish --no-git-tag + yarn changeset publish --no-git-tag --tag beta git reset --hard HEAD^ diff --git a/package.json b/package.json index 20a5d15a9c9..bd0e460bd81 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "build:ts:watch": "wireit", "build:types": "wireit", "build:watch": "wireit", - "changeset-snapshot-publish": "yarn prepublishOnly && yarn changeset version --snapshot && yarn lint:versions --fix && yarn update-version && yarn changeset publish --no-git-tag --tag snapshot", + "changeset-snapshot-publish": "yarn prepublishOnly && yarn changeset version --snapshot ${1} && yarn lint:versions --fix && yarn update-version && yarn changeset publish --no-git-tag --tag snapshot", "changeset-publish": "yarn prepublishOnly && yarn changeset version && yarn install && yarn lint:versions --fix && yarn update-version && yarn changeset publish --no-git-tag && yarn push-to-remote && yarn create-git-tag && yarn postpublish", "update-version": "node ./tasks/update-version.js", "chromatic": "chromatic --build-script-name storybook:build # note that --project-token must be set in your env variables",