From 5d6b00f5989ffb3e9d94cfc6a5df0f0f25673656 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:30:13 +0000 Subject: [PATCH 01/26] Add workflow to publish npm package --- .github/workflows/build-and-publish.yml | 23 +++++++++++++++++++++++ package.json | 6 +++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-and-publish.yml diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml new file mode 100644 index 0000000..cf93447 --- /dev/null +++ b/.github/workflows/build-and-publish.yml @@ -0,0 +1,23 @@ +name: Build and Publish +on: + push: + branches: + - main + pull_request: + branches: + - main + release: + types: [created] + +jobs: + build-and-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + with: + node-version: '20.x' + registry-url: 'https://npm.pkg.github.com' + - run: npm ci + - run: npm run build + - run: npm publish diff --git a/package.json b/package.json index bf7c26a..91774f7 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,13 @@ "name": "watcloud-emails", "version": "0.0.1", "bin": "./dist/cli/index.js", + "files": [ + "dist" + ], "scripts": { + "dev": "concurrently --kill-others \"email dev\" \"tsc -w\"", "build": "tsc", - "dev": "concurrently --kill-others \"email dev\" \"tsc -w\"" + "prepack": "npm run build" }, "dependencies": { "@react-email/components": "0.0.25", From 474e8706fa492f093772ab466842644164e755f8 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:31:23 +0000 Subject: [PATCH 02/26] Apply npm pkg fix --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 91774f7..6f78e65 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,9 @@ { "name": "watcloud-emails", "version": "0.0.1", - "bin": "./dist/cli/index.js", + "bin": { + "watcloud-emails": "dist/cli/index.js" + }, "files": [ "dist" ], From 3a445f11f008bef2b7e3189d04ee61a51a242979 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:33:34 +0000 Subject: [PATCH 03/26] Add package write perms --- .github/workflows/build-and-publish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index cf93447..94e167a 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -12,6 +12,9 @@ on: jobs: build-and-publish: runs-on: ubuntu-latest + permissions: + contents: read + packages: write steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 From a2ad47b3e161bcdc9926420141936febad39aef6 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:35:39 +0000 Subject: [PATCH 04/26] Add github token --- .github/workflows/build-and-publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 94e167a..cf3b4c5 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -24,3 +24,5 @@ jobs: - run: npm ci - run: npm run build - run: npm publish + env: + NODE_AUTH_TOKEN: ${{github.token}} From 20b3ec427a6308077d7d00a474e3d84368dea9f1 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:36:30 +0000 Subject: [PATCH 05/26] Specify repository owner --- .github/workflows/build-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index cf3b4c5..85bf20d 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -21,6 +21,7 @@ jobs: with: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' + scope: "@${{github.repository_owner}}" - run: npm ci - run: npm run build - run: npm publish From b51b858047ed2872b57e5dbc93cd70b2c9692ddf Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:38:19 +0000 Subject: [PATCH 06/26] Debug npmrc --- .github/workflows/build-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 85bf20d..4200d58 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -24,6 +24,7 @@ jobs: scope: "@${{github.repository_owner}}" - run: npm ci - run: npm run build + - run: cat ~/.npmrc - run: npm publish env: NODE_AUTH_TOKEN: ${{github.token}} From 88c7a4843de7d832b8a3fbb1887f7e35961ae613 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:42:17 +0000 Subject: [PATCH 07/26] access public --- .github/workflows/build-and-publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 4200d58..a11227b 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -21,10 +21,8 @@ jobs: with: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' - scope: "@${{github.repository_owner}}" - run: npm ci - run: npm run build - - run: cat ~/.npmrc - - run: npm publish + - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{github.token}} From c598beb16e98d016181bde3ceee68282cc0d3636 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:45:24 +0000 Subject: [PATCH 08/26] Set NODE_AUTH_TOKEN --- .github/workflows/build-and-publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index a11227b..be1bb15 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -21,6 +21,8 @@ jobs: with: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' + env: + NODE_AUTH_TOKEN: ${{github.token}} - run: npm ci - run: npm run build - run: npm publish --access public From e481d7f5e3859ca613635c580bf7cbae544c656f Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:48:04 +0000 Subject: [PATCH 09/26] Use node 4.0.4 --- .github/workflows/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index be1bb15..170c2a2 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -17,7 +17,7 @@ jobs: packages: write steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' From 8c4ecd4ac472a4c1e459a4a69f13e1fcde0ef57d Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 19:51:37 +0000 Subject: [PATCH 10/26] cat auth file --- .github/workflows/build-and-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 170c2a2..9e8fffc 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -25,6 +25,7 @@ jobs: NODE_AUTH_TOKEN: ${{github.token}} - run: npm ci - run: npm run build + - run: cat /home/runner/work/_temp/.npmrc - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{github.token}} From 1eaa52a396ef0c6e44883ea414c0886527a82f0f Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:20:34 +0000 Subject: [PATCH 11/26] debug npm publish --- .github/workflows/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 9e8fffc..2ca5936 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -26,6 +26,6 @@ jobs: - run: npm ci - run: npm run build - run: cat /home/runner/work/_temp/.npmrc - - run: npm publish --access public + - run: npm publish --dry-run --verbose --access public env: NODE_AUTH_TOKEN: ${{github.token}} From 8f5b740dc77922b66427750fef44bfb773513777 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:27:59 +0000 Subject: [PATCH 12/26] Add package scope --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6f78e65..3c69a62 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "watcloud-emails", + "name": "@watonomous/watcloud-emails", "version": "0.0.1", "bin": { "watcloud-emails": "dist/cli/index.js" From 567112c7fad7a25334a9719f811a6500b42dc05f Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:32:51 +0000 Subject: [PATCH 13/26] Remove dry-run --- .github/workflows/build-and-publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 2ca5936..29d76b2 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -21,11 +21,9 @@ jobs: with: node-version: '20.x' registry-url: 'https://npm.pkg.github.com' - env: - NODE_AUTH_TOKEN: ${{github.token}} - run: npm ci - run: npm run build - run: cat /home/runner/work/_temp/.npmrc - - run: npm publish --dry-run --verbose --access public + - run: npm publish --verbose --access public env: NODE_AUTH_TOKEN: ${{github.token}} From 745888f08218fd2c5d1a5c6df9f3f0f332e63fd0 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:40:32 +0000 Subject: [PATCH 14/26] Remove hard-coded version --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 3c69a62..979c4d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "@watonomous/watcloud-emails", - "version": "0.0.1", "bin": { "watcloud-emails": "dist/cli/index.js" }, From 6f1356aa40cf04a971008e2b0247419d3fc87f4d Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:46:43 +0000 Subject: [PATCH 15/26] Remove version from package-lock.json too --- package-lock.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index dfedf62..4195b49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,10 @@ { "name": "watcloud-emails", - "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "watcloud-emails", - "version": "0.0.1", "dependencies": { "@react-email/components": "0.0.25", "commander": "^12.1.0", From da22ad7695b5cfcec8010d2bc8e4f133b2a5cf2a Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:48:41 +0000 Subject: [PATCH 16/26] Publish on release only --- .github/workflows/build-and-publish.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 29d76b2..d57d9c6 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -7,7 +7,7 @@ on: branches: - main release: - types: [created] + types: [published] jobs: build-and-publish: @@ -24,6 +24,10 @@ jobs: - run: npm ci - run: npm run build - run: cat /home/runner/work/_temp/.npmrc - - run: npm publish --verbose --access public + - name: Publish to GitHub Packages + if: github.event_name == 'release' + run: | + npm version from-git --no-git-tag-version + npm publish --verbos env: NODE_AUTH_TOKEN: ${{github.token}} From 44115a9e18c1bc8c3d90dde01ce6bb5fa627fa31 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:49:15 +0000 Subject: [PATCH 17/26] Test publish without public --- .github/workflows/build-and-publish.yml | 6 ++---- package.json | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index d57d9c6..29edefa 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -25,9 +25,7 @@ jobs: - run: npm run build - run: cat /home/runner/work/_temp/.npmrc - name: Publish to GitHub Packages - if: github.event_name == 'release' - run: | - npm version from-git --no-git-tag-version - npm publish --verbos + run: + npm publish --verbose env: NODE_AUTH_TOKEN: ${{github.token}} diff --git a/package.json b/package.json index 979c4d7..c9f0240 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "@watonomous/watcloud-emails", + "version": "0.0.2", "bin": { "watcloud-emails": "dist/cli/index.js" }, From a191bccc087c4124e80201b0fe8f7c54bd53c965 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 20:56:09 +0000 Subject: [PATCH 18/26] Add postinstall --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c9f0240..b8bd47a 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "scripts": { "dev": "concurrently --kill-others \"email dev\" \"tsc -w\"", "build": "tsc", - "prepack": "npm run build" + "prepack": "npm run build", + "postinstall": "npm run build" }, "dependencies": { "@react-email/components": "0.0.25", From fc790c4aace24ba309c2bfb4e357cb6b74c21df8 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:01:43 +0000 Subject: [PATCH 19/26] Publish package for public access --- .github/workflows/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 29edefa..95d72f1 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -26,6 +26,6 @@ jobs: - run: cat /home/runner/work/_temp/.npmrc - name: Publish to GitHub Packages run: - npm publish --verbose + npm publish --verbose --access public env: NODE_AUTH_TOKEN: ${{github.token}} From 2e2fc75565435a10ed556884253552b9bc8d8cdc Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:11:26 +0000 Subject: [PATCH 20/26] Remove version --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index b8bd47a..5bf40b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "@watonomous/watcloud-emails", - "version": "0.0.2", "bin": { "watcloud-emails": "dist/cli/index.js" }, From 5d6e44d74712e91c9a23d7670d1a734f55a9dd68 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:22:00 +0000 Subject: [PATCH 21/26] npm pack' --- .github/workflows/build-and-publish.yml | 40 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 95d72f1..5250ce2 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -7,25 +7,41 @@ on: branches: - main release: - types: [published] + types: [created] jobs: build-and-publish: runs-on: ubuntu-latest permissions: - contents: read - packages: write + # write is required to write to releases + contents: write steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 with: node-version: '20.x' - registry-url: 'https://npm.pkg.github.com' - - run: npm ci - - run: npm run build - - run: cat /home/runner/work/_temp/.npmrc - - name: Publish to GitHub Packages - run: - npm publish --verbose --access public - env: - NODE_AUTH_TOKEN: ${{github.token}} + - name: Install Dependencies + run: npm ci + - name: Build + run: npm run build + - name: Create Package + run: | + if npm version --no-git-tag-version from-git > /dev/null 2>&1; then + echo "Using auto version based on git tag" + else + echo "Using version 0.0.0-dev" + npm version --no-git-tag-version 0.0.0-dev + fi + mkdir out + npm pack --pack-destination out + - name: Upload build artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: package + path: out/*.tgz + - name: Attach build artifact to release + if: github.event_name == 'release' + uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # 2.0.8 + with: + files: out/*.tgz + \ No newline at end of file From e1d98ffd1d723f058b1a633bc48d536344437706 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:23:08 +0000 Subject: [PATCH 22/26] Remove artifact name --- .github/workflows/build-and-publish.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 5250ce2..c075df1 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -37,7 +37,6 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: - name: package path: out/*.tgz - name: Attach build artifact to release if: github.event_name == 'release' From 72dd7d335eb7a324411b0416f914c8654e966df6 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:24:43 +0000 Subject: [PATCH 23/26] Upload out folder --- .github/workflows/build-and-publish.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index c075df1..b0bd6c4 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -37,7 +37,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: - path: out/*.tgz + name: package + path: out/ - name: Attach build artifact to release if: github.event_name == 'release' uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # 2.0.8 From a192204fa2b7a3fbcb0b3662cde0c7876baeb6df Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:26:32 +0000 Subject: [PATCH 24/26] Attach entire out folder to release --- .github/workflows/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index b0bd6c4..ef4ac52 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -43,5 +43,5 @@ jobs: if: github.event_name == 'release' uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # 2.0.8 with: - files: out/*.tgz + files: out/ \ No newline at end of file From d65553260c61f106809b3fe4eb3939aeaaaa65f8 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:28:54 +0000 Subject: [PATCH 25/26] Remove postinstall --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 5bf40b6..979c4d7 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,7 @@ "scripts": { "dev": "concurrently --kill-others \"email dev\" \"tsc -w\"", "build": "tsc", - "prepack": "npm run build", - "postinstall": "npm run build" + "prepack": "npm run build" }, "dependencies": { "@react-email/components": "0.0.25", From 93e9c66aca911987d0d008b359ef7059c7249e19 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Sat, 12 Oct 2024 21:37:19 +0000 Subject: [PATCH 26/26] Add /usr/bin/env node to entrypoint https://docs.npmjs.com/cli/v10/configuring-npm/package-json#bin --- cli/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cli/index.ts b/cli/index.ts index 4ce9cca..3a70926 100644 --- a/cli/index.ts +++ b/cli/index.ts @@ -1,3 +1,5 @@ +#!/usr/bin/env node + import { render } from '@react-email/components'; import { Command } from 'commander'; import fs from 'fs';