Skip to content

Commit

Permalink
[BLD] JS client release to GH packages + dev releases (#2173)
Browse files Browse the repository at this point in the history
## Description of changes

*Summarize the changes made by this PR.*
 - Improvements & Bug fixes
	- Added support for releasing js client to GH packages
- Fixed the tag matching patterns to prevent unexpected tags to trigger
the WF, thus resulting in failure (existing error handling is still in
place)
- Added support for dev releases to GH packages only (we want to prevent
poluting npmjs with too many releases, as it is the primary distribution
channel for the js package)
- Implemented dev package naming convention to include sha of the merge
commit + GH action run it for provenance tracing

## Test plan
*How are these changes tested?*


## Documentation Changes
N/A
  • Loading branch information
tazarov authored Jun 11, 2024
1 parent e04a71e commit b10c1ef
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 5 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/release-dev-javascript-client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: 📦 Development Release JavaScript client

on:
push:
branches:
- main

jobs:
release-dev:
strategy:
matrix:
registry: [ "https://npm.pkg.github.com" ]
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
permissions: write-all
steps:
- name: Check if tag matches the pattern
id: check-tag
run: |
# we don't necessarily need this
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
echo "Push to main branch, releasing dev version to GH packages"
echo "NPM_SCRIPT=release_dev" >> "$GITHUB_ENV"
else
echo "The ref does not point to main, exiting workflow" # we alredy make the check above but this is a good practice
exit 1
fi
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: "16.x"
registry-url: ${{ matrix.registry }}
- name: Install dependencies
run: npm install
working-directory: ./clients/js/
- name: Dev Version
id: dev-version
run: |
set -e
# Get current version
CURRENT_VERSION=$(node -p "require('./package.json').version")
# Generate a beta tag using commit short sha and run id
COMMIT_SHA=$(git rev-parse --short HEAD)
DEV_TAG="dev.${COMMIT_SHA}-${GITHUB_RUN_ID}"
# Create full version with beta tag
BASE_VERSION=$(echo $CURRENT_VERSION | cut -f1,2 -d.)
PATCH_VERSION=$(echo $CURRENT_VERSION | cut -f3 -d.)
# bump patch version
NEW_PATCH_VERSION=$((PATCH_VERSION + 1))
NEW_VERSION="${BASE_VERSION}.${NEW_PATCH_VERSION}-${DEV_TAG}"
echo "NEW_VERSION=${NEW_VERSION}" >> "$GITHUB_ENV"
- name: Test & publish
run: npm run db:run && PORT=8001 npm run $NPM_SCRIPT
working-directory: ./clients/js/
env:
NODE_AUTH_TOKEN: ${{ matrix.registry == 'https://registry.npmjs.org' && secrets.NPM_TOKEN || secrets.GITHUB_TOKEN }}
11 changes: 7 additions & 4 deletions .github/workflows/release-javascript-client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@ name: 📦 Release JavaScript client
on:
push:
tags:
- 'js_release_*.*.*' # Match tags in the form js_release_X.Y.Z
- 'js_release_alpha_*.*.*' # Match tags in the form js_release_alpha_X.Y.Z
- 'js_release_[0-9]+\.[0-9]+\.[0-9]+' # Match tags in the form js_release_X.Y.Z
- 'js_release_alpha_[0-9]+\.[0-9]+\.[0-9]+' # Match tags in the form js_release_alpha_X.Y.Z

jobs:
release:
strategy:
matrix:
registry: [ "https://registry.npmjs.org", "https://npm.pkg.github.com" ]
runs-on: ubuntu-latest
permissions: write-all
steps:
Expand All @@ -30,12 +33,12 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: "16.x"
registry-url: "https://registry.npmjs.org"
registry-url: ${{ matrix.registry }}
- name: Install dependencies
run: npm install
working-directory: ./clients/js/
- name: Test & publish
run: npm run db:run && PORT=8001 npm run $NPM_SCRIPT
working-directory: ./clients/js/
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ matrix.registry == 'https://registry.npmjs.org' && secrets.NPM_TOKEN || secrets.GITHUB_TOKEN }}
3 changes: 2 additions & 1 deletion clients/js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@
"genapi": "./genapi.sh",
"prettier": "prettier --write .",
"release": "run-s build test:run && npm publish",
"release_alpha": "run-s build test:run && npm publish --tag alpha"
"release_alpha": "run-s build test:run && npm publish --tag alpha",
"release_dev": "run-s build test:run && npm version ${NEW_VERSION} --no-git-tag-version && npm publish"
},
"engines": {
"node": ">=14.17.0"
Expand Down

0 comments on commit b10c1ef

Please sign in to comment.