11name : Publish npm packages
22
3+ # To test this flow, push a `test-v*` tag.
4+ # This will check against the real npmjs.com/package/test package, but won't actually publish.
5+
36on :
47 push :
58 tags :
69 - " pluggable-widgets-tools-v*"
710 - " generator-widget-v*"
11+ - " test-v*"
812
913permissions :
1014 id-token : write # Required for OIDC
@@ -61,10 +65,10 @@ jobs:
6165 cache : ' pnpm'
6266
6367 - name : Install dependencies
64- working-directory : ./packages/${{ matrix.release.package }}
6568 run : pnpm install
6669
6770 - name : Pack package
71+ if : ${{ matrix.release.package != 'test' }}
6872 working-directory : ./packages/${{ matrix.release.package }}
6973 run : pnpm pack
7074
@@ -74,20 +78,24 @@ jobs:
7478 node-version : ' 24' # Includes a version of npm higher than 11.5.1, which is needed for OIDC
7579
7680 - name : Release Tag
77- id : tag
7881 run : |
82+ package="$(echo "${{matrix.release.package}}" | sed -E '/^test$/! s/^/@mendix\//')" # Prefix all packages except test
7983 release="${{ matrix.release.version }}"
80- latest="$(npm view @mendix/${{ matrix.release. package }} dist-tags.latest)"
84+ latest="$(npm view $ package dist-tags.latest)"
8185 older="$(npx semver@7.8.5 "$latest" "$release" 2>/dev/null | head -n 1)"
8286 tag="latest"
8387 if [[ "$latest" != "$older" ]]; then
8488 tag="$(echo "$release" | sed -E 's/^([0-9]+\.[0-9]+).[0-9]+$/\1-latest/')"
8589 fi
86- printf 'RELEASE_TAG= %s' "$tag" >> "$GITHUB_OUTPUT "
87-
90+ printf 'Using release tag %s' "$tag"
91+ printf 'release_tag=%s' "$tag" >> "$GITHUB_ENV"
8892
8993 - name : Publish package
90- working-directory : ./packages/${{ matrix.release.package }}
91- run : npm publish --tag ${{ vars.tag }} mendix-${{ matrix.release.package }}-${{matrix.release.version }}.tgz
92- variables :
93- tag : ${{ steps.tag.outputs.RELEASE_TAG }}
94+ working-directory :
95+ run : |
96+ cmd="npm publish --tag $release_tag ./packages/${{ matrix.release.package }}/mendix-${{ matrix.release.package }}-${{matrix.release.version }}.tgz"
97+ if [[ "${{ matrix.release.package }}" == "test" ]]; then
98+ echo "$cmd"
99+ else
100+ $cmd
101+ fi
0 commit comments