|
2 | 2 | push: |
3 | 3 | branches: |
4 | 4 | - main |
| 5 | + - develop |
| 6 | + |
5 | 7 | name: Publish to NPM |
6 | 8 | jobs: |
7 | 9 | publish: |
8 | 10 | name: Publish |
9 | 11 | runs-on: ubuntu-latest |
10 | | - environment: prod |
| 12 | + environment: ${{ github.ref_name == 'main' && 'prod' || 'dev' }} |
| 13 | + |
| 14 | + permissions: |
| 15 | + contents: read |
| 16 | + id-token: write |
| 17 | + |
11 | 18 | steps: |
12 | | - - uses: actions/checkout@v3 |
| 19 | + - uses: actions/checkout@v6 |
13 | 20 |
|
14 | 21 | - name: Enable Corepack |
15 | 22 | run: corepack enable |
16 | 23 |
|
17 | 24 | - name: Use Node.js 18 |
18 | | - uses: actions/setup-node@v3 |
| 25 | + uses: actions/setup-node@v6 |
19 | 26 | with: |
20 | 27 | node-version: '18.x' |
21 | | - always-auth: true |
22 | 28 |
|
23 | 29 | - name: Install dependencies |
24 | 30 | run: yarn install |
25 | 31 |
|
| 32 | + - name: Bump version (dev) |
| 33 | + if: github.ref_name == 'develop' |
| 34 | + id: version |
| 35 | + run: | |
| 36 | + CURRENT_VERSION=$(jq -r '.version' package.json) |
| 37 | + BASE_VERSION=$(echo $CURRENT_VERSION | cut -d '-' -f 1) |
| 38 | + |
| 39 | + NEW_BASE=$(echo $BASE_VERSION | awk -v OFS='.' -F. '{ |
| 40 | + $2 = $2 + 1; |
| 41 | + $3 = 0; |
| 42 | + print $0 |
| 43 | + }') |
| 44 | + |
| 45 | + TIMESTAMP=$(date -u +"%Y%m%d%H%M%S") |
| 46 | + COMMIT_SHA=$(git rev-parse --short HEAD) |
| 47 | + NEW_VERSION="${NEW_BASE}-dev.${TIMESTAMP}.${COMMIT_SHA}" |
| 48 | + |
| 49 | + jq ".version = \"$NEW_VERSION\"" package.json > package.tmp |
| 50 | + mv package.tmp package.json |
| 51 | +
|
26 | 52 | - name: Build |
27 | 53 | run: yarn run build |
28 | 54 |
|
29 | | - - name: Setup .yarnrc.yml |
30 | | - run: | |
31 | | - yarn config set npmAuthToken $NPM_AUTH_TOKEN |
32 | | - yarn config set npmAlwaysAuth true |
33 | | - env: |
34 | | - NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} |
35 | | - |
36 | 55 | - name: Publish |
37 | | - env: |
38 | | - NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} |
39 | | - run: yarn npm publish --access public |
| 56 | + run: | |
| 57 | + npm config delete //registry.npmjs.org/:_authToken || true |
| 58 | + if [ "${{ github.ref_name }}" = "develop" ]; then |
| 59 | + npm publish --provenance --access public --tag dev |
| 60 | + else |
| 61 | + npm publish --provenance --access public |
| 62 | + fi |
0 commit comments