diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cb298343..2c1c4771 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,3 +56,24 @@ jobs: dist/changelog.md -t v$(cat dist/version.txt) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + release_npm: + name: Publish to npm + needs: release + runs-on: ubuntu-latest + permissions: + contents: read + if: needs.release.outputs.latest_commit == github.sha + steps: + - name: Download build artifacts + uses: actions/download-artifact@v2 + with: + name: dist + path: dist + - name: Release + run: npx -p jsii-release@latest jsii-release-npm + env: + NPM_DIST_TAG: latest + NPM_REGISTRY: registry.npmjs.org + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + container: + image: jsii/superchain diff --git a/.projen/tasks.json b/.projen/tasks.json index ccb6cc9b..776b7279 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -143,6 +143,22 @@ } ] }, + "publish:npm": { + "name": "publish:npm", + "description": "Publish this package to npm", + "env": { + "NPM_DIST_TAG": "latest", + "NPM_REGISTRY": "registry.npmjs.org" + }, + "requiredEnv": [ + "NPM_TOKEN" + ], + "steps": [ + { + "exec": "npx -p jsii-release@latest jsii-release-npm" + } + ] + }, "upgrade": { "name": "upgrade", "description": "upgrade dependencies", @@ -186,7 +202,13 @@ "description": "Create an npm tarball", "steps": [ { - "exec": "/bin/bash ./package.sh" + "exec": "mkdir -p dist/js" + }, + { + "exec": "yarn pack" + }, + { + "exec": "mv *.tgz dist/js/" } ] }, diff --git a/.projenrc.js b/.projenrc.js index d976859b..512f5642 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -43,6 +43,8 @@ const project = new TypeScriptProject({ secret: 'GITHUB_TOKEN', }, autoApproveUpgrades: true, + + releaseToNpm: true, }); // trick projen so that it doesn't override the version in package.json @@ -66,7 +68,4 @@ compileCustomResourceHandlers.exec('/bin/bash ./build-custom-resource-handlers.s project.compileTask.prependSpawn(compileCustomResourceHandlers); -project.packageTask.reset(); -project.packageTask.exec('/bin/bash ./package.sh'); - project.synth(); diff --git a/package.json b/package.json index 7f241f09..78b7e218 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "bump": "npx projen bump", "unbump": "npx projen unbump", "publish:github": "npx projen publish:github", + "publish:npm": "npx projen publish:npm", "upgrade": "npx projen upgrade", "default": "npx projen default", "watch": "npx projen watch", diff --git a/package.sh b/package.sh deleted file mode 100644 index 75ffa536..00000000 --- a/package.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -euo pipefail -tarball=$(npm pack) -rm -fr dist -mkdir -p dist/js -mv ${tarball} dist/js/ - -