Canary versions #53
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Beta | |
on: pull_request | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
# We store information about used changeset in the comment | |
# So we need to find it to check if we need to publish a new beta | |
# Also we will update this comment with new information in case of new beta | |
- name: Find comment about previous beta | |
uses: peter-evans/find-comment@v1 | |
id: find_comment | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: Farfetched Beta | |
- uses: actions/checkout@v3 | |
- uses: pnpm/action-setup@v2 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Authenticate with NPM | |
run: | | |
echo "//registry.npmjs.org/:_authToken="${{secrets.NPM_TOKEN}}"" > ~/.npmrc | |
- run: pnpm install --frozen-lockfile | |
# Parse latest published version of the beta and update local package.json for all packages | |
- name: Restore beta version | |
run: node ./tools/scripts/beta/beta_version_restore.mjs ${{ github.event.pull_request.number }} | |
# Update version in package.json for all packages with changeset and generate pre.json file | |
- run: pnpm changeset pre enter ${{ github.event.pull_request.number }} | |
- run: pnpm changeset version | |
- run: pnpm changeset pre exit | |
# Check if we need to publish a new beta | |
# it uses pre.json file and information about previous beta from the comment | |
- name: Check if new beta is required | |
id: beta_required | |
run: node ./tools/scripts/beta/beta_required.mjs """${{ steps.find_comment.outputs.comment-body }}""" >> $GITHUB_OUTPUT && cat $GITHUB_OUTPUT | |
- name: Publish beta | |
if: steps.beta_required.outputs.skipBeta == '' | |
run: pnpm nx run-many --output-style=static --target=publish --all --configuration=beta | |
- name: Retrieve information about latest beta | |
id: beta_info | |
run: node ./tools/scripts/beta/beta_info.mjs >> $GITHUB_OUTPUT && cat $GITHUB_OUTPUT | |
# In case of absence of the comment we will create it with information about latest beta | |
- name: Create comment | |
if: steps.find_comment.outputs.comment-id == '' | |
uses: peter-evans/create-or-update-comment@v1 | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
# Farfetched Beta | |
Latest beta version is ${{ steps.beta_info.outputs.betaVersion }} | |
[More information about beta versions](https://beta.farfetched.pages.dev/releases/beta.html) | |
--- | |
Used changeset: ${{ steps.beta_info.outputs.usedChangesets }} | |
# Otherwise we will update it with information about latest beta, | |
# but only if we published a new beta | |
- name: Update comment | |
if: steps.find_comment.outputs.comment-id != '' && steps.beta_required.outputs.skipBeta == '' | |
uses: peter-evans/create-or-update-comment@v1 | |
with: | |
edit-mode: replace | |
comment-id: ${{ steps.find_comment.outputs.comment-id }} | |
body: | | |
# Farfetched Beta | |
Latest beta version is ${{ steps.beta_info.outputs.betaVersion }} | |
[More information about beta versions](https://beta.farfetched.pages.dev/releases/beta.html) | |
--- | |
Used changeset: ${{ steps.beta_info.outputs.usedChangesets }} |