From c8896388fc6a36bcecca5237b78dd28922f830e8 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Fri, 31 May 2024 17:28:46 +0100 Subject: [PATCH 01/13] Fix paths in package.json --- header-gen/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/header-gen/package.json b/header-gen/package.json index 3e842e1..30cc7a8 100644 --- a/header-gen/package.json +++ b/header-gen/package.json @@ -4,11 +4,11 @@ "description": "A simple TS script to generate a header blob for the ML runner", "author": "Micro:bit Educational Foundation ", "license": "MIT", - "module": "./dist/main.js", - "typings": "./dist/main.d.ts", + "module": "./built/main.js", + "typings": "./built/main.d.ts", "files": [ - "./dist/*.js", - "./dist/*.d.ts" + "./built/*.js", + "./built/*.d.ts" ], "scripts": { "start": "ts-node --project tsconfig.cli.json src/cli.ts", From dbbcd546f6ef7565d2ceba59c62bb800726330bc Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Fri, 31 May 2024 17:29:13 +0100 Subject: [PATCH 02/13] Add GitHub action for build workflow This will publish the ml-header-generator package. --- .github/workflows/build.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f57fb65 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +name: build +on: + release: + types: [created] + push: + branches: + - "**" + paths: + - "header-gen/**" +jobs: + build: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./header-gen + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: "20.x" + registry-url: "https://npm.pkg.github.com" + cache: npm + - uses: microbit-foundation/npm-package-versioner-action@v1 + - run: npm ci + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: npm run ci:update-version + - run: npm run build + - run: npm publish + if: github.ref == 'refs/heads/main' || github.event_name == 'release' && github.event.action == 'created' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5752d574aefd934494870b235fcb696a90853b9d Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 3 Jun 2024 09:16:47 +0100 Subject: [PATCH 03/13] Add cache dependency path The setup-node action expects this to be at the root. --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f57fb65..4f6b486 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,7 @@ jobs: node-version: "20.x" registry-url: "https://npm.pkg.github.com" cache: npm + cache-dependency-path: header-gen/package-lock.json - uses: microbit-foundation/npm-package-versioner-action@v1 - run: npm ci env: From 4e74f4edfdcfb62ebafe05e038016a76dbd0324f Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 3 Jun 2024 09:19:40 +0100 Subject: [PATCH 04/13] Re-run action if build.yml is modified --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f6b486..39768db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,6 +7,7 @@ on: - "**" paths: - "header-gen/**" + - "**/build.yml" jobs: build: runs-on: ubuntu-latest From 58208af56874dc4a1d298058e2467bb8e031f7a9 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 3 Jun 2024 09:27:46 +0100 Subject: [PATCH 05/13] Use non-action package-versioner This may fail if this repo doesn't have permissions to use this package --- .github/workflows/build.yml | 1 - header-gen/.npmrc | 1 + header-gen/package-lock.json | 30 ++++++++++++++++++++++++++++++ header-gen/package.json | 4 +++- 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 header-gen/.npmrc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39768db..d758c6c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,6 @@ jobs: registry-url: "https://npm.pkg.github.com" cache: npm cache-dependency-path: header-gen/package-lock.json - - uses: microbit-foundation/npm-package-versioner-action@v1 - run: npm ci env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/header-gen/.npmrc b/header-gen/.npmrc new file mode 100644 index 0000000..d617cf0 --- /dev/null +++ b/header-gen/.npmrc @@ -0,0 +1 @@ +@microbit-foundation:registry=https://npm.pkg.github.com/microbit-foundation diff --git a/header-gen/package-lock.json b/header-gen/package-lock.json index eda8f72..0cfeab6 100644 --- a/header-gen/package-lock.json +++ b/header-gen/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "license": "MIT", "devDependencies": { + "@microbit-foundation/npm-package-versioner": "^2.0.1", "@types/jest": "^29.5.12", "jest": "^29.7.0", "ts-jest": "^29.1.4", @@ -1003,6 +1004,29 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@microbit-foundation/npm-package-versioner": { + "version": "2.0.1", + "resolved": "https://npm.pkg.github.com/download/@microbit-foundation/npm-package-versioner/2.0.1/3250c7ad02930aab0c26bd69b0270e5b951b2a0c", + "integrity": "sha512-B8MHONxqIG5DIan9a5pyXABB6USTJj2DB9f/2MZVs+Dsy5IwTSKaUO/tS3XhDMQpvm2fZM7g6KRjL5TIYZcjXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/semver": "^5.5.0", + "semver": "^5.6.0" + }, + "bin": { + "update-ci-version": "bin/update-ci-version.js" + } + }, + "node_modules/@microbit-foundation/npm-package-versioner/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1144,6 +1168,12 @@ "undici-types": "~5.26.4" } }, + "node_modules/@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", + "dev": true + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", diff --git a/header-gen/package.json b/header-gen/package.json index 30cc7a8..de56b56 100644 --- a/header-gen/package.json +++ b/header-gen/package.json @@ -14,9 +14,11 @@ "start": "ts-node --project tsconfig.cli.json src/cli.ts", "test": "jest", "prepare": "tsc", - "build": "tsc" + "build": "tsc", + "ci:update-version": "update-ci-version" }, "devDependencies": { + "@microbit-foundation/npm-package-versioner": "^2.0.1", "@types/jest": "^29.5.12", "jest": "^29.7.0", "ts-jest": "^29.1.4", From d89575c39602e9bef955b13550c396d47102e07b Mon Sep 17 00:00:00 2001 From: Matt Hillsdon Date: Wed, 5 Jun 2024 10:40:22 +0100 Subject: [PATCH 06/13] Try using updated GHA to change version --- .github/workflows/build.yml | 1 + header-gen/package-lock.json | 30 ------------------------------ header-gen/package.json | 1 - 3 files changed, 1 insertion(+), 31 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d758c6c..8d5005b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,7 @@ jobs: - run: npm ci env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: microbit-foundation/npm-package-versioner-action@working-directory - run: npm run ci:update-version - run: npm run build - run: npm publish diff --git a/header-gen/package-lock.json b/header-gen/package-lock.json index 0cfeab6..eda8f72 100644 --- a/header-gen/package-lock.json +++ b/header-gen/package-lock.json @@ -9,7 +9,6 @@ "version": "0.1.0", "license": "MIT", "devDependencies": { - "@microbit-foundation/npm-package-versioner": "^2.0.1", "@types/jest": "^29.5.12", "jest": "^29.7.0", "ts-jest": "^29.1.4", @@ -1004,29 +1003,6 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@microbit-foundation/npm-package-versioner": { - "version": "2.0.1", - "resolved": "https://npm.pkg.github.com/download/@microbit-foundation/npm-package-versioner/2.0.1/3250c7ad02930aab0c26bd69b0270e5b951b2a0c", - "integrity": "sha512-B8MHONxqIG5DIan9a5pyXABB6USTJj2DB9f/2MZVs+Dsy5IwTSKaUO/tS3XhDMQpvm2fZM7g6KRjL5TIYZcjXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/semver": "^5.5.0", - "semver": "^5.6.0" - }, - "bin": { - "update-ci-version": "bin/update-ci-version.js" - } - }, - "node_modules/@microbit-foundation/npm-package-versioner/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1168,12 +1144,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", diff --git a/header-gen/package.json b/header-gen/package.json index de56b56..e58ba96 100644 --- a/header-gen/package.json +++ b/header-gen/package.json @@ -18,7 +18,6 @@ "ci:update-version": "update-ci-version" }, "devDependencies": { - "@microbit-foundation/npm-package-versioner": "^2.0.1", "@types/jest": "^29.5.12", "jest": "^29.7.0", "ts-jest": "^29.1.4", From 62676e386d5b497b4e1bb78811e9f8ca488d0577 Mon Sep 17 00:00:00 2001 From: Matt Hillsdon Date: Wed, 5 Jun 2024 10:41:23 +0100 Subject: [PATCH 07/13] Actually set working-directory --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d5005b..45dfc7c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,8 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - uses: microbit-foundation/npm-package-versioner-action@working-directory + with: + working-directory: ./header-gen - run: npm run ci:update-version - run: npm run build - run: npm publish From d9cda68630fa6dec151191495f66ef0a2fca3aee Mon Sep 17 00:00:00 2001 From: Matt Hillsdon Date: Wed, 5 Jun 2024 10:42:42 +0100 Subject: [PATCH 08/13] Remove old way --- .github/workflows/build.yml | 1 - header-gen/package.json | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 45dfc7c..4cf0998 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,6 @@ jobs: - uses: microbit-foundation/npm-package-versioner-action@working-directory with: working-directory: ./header-gen - - run: npm run ci:update-version - run: npm run build - run: npm publish if: github.ref == 'refs/heads/main' || github.event_name == 'release' && github.event.action == 'created' diff --git a/header-gen/package.json b/header-gen/package.json index e58ba96..30cc7a8 100644 --- a/header-gen/package.json +++ b/header-gen/package.json @@ -14,8 +14,7 @@ "start": "ts-node --project tsconfig.cli.json src/cli.ts", "test": "jest", "prepare": "tsc", - "build": "tsc", - "ci:update-version": "update-ci-version" + "build": "tsc" }, "devDependencies": { "@types/jest": "^29.5.12", From c4fcc49a2c6db88b992ea7ed85af8a3e18d24495 Mon Sep 17 00:00:00 2001 From: Matt Hillsdon Date: Wed, 5 Jun 2024 10:44:34 +0100 Subject: [PATCH 09/13] Working dir change has now been released as 1.1.0 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4cf0998..950a5d0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: - run: npm ci env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: microbit-foundation/npm-package-versioner-action@working-directory + - uses: microbit-foundation/npm-package-versioner-action@v1 with: working-directory: ./header-gen - run: npm run build From 1c6dbc4ef6e48fc89c577e51f8808243bfc64dbe Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Wed, 5 Jun 2024 17:07:52 +0100 Subject: [PATCH 10/13] Review feedback and merge into header-gen.yml --- .github/workflows/build.yml | 38 -------------------------------- .github/workflows/header-gen.yml | 22 ++++++++++++++++++ 2 files changed, 22 insertions(+), 38 deletions(-) delete mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 950a5d0..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: build -on: - release: - types: [created] - push: - branches: - - "**" - paths: - - "header-gen/**" - - "**/build.yml" -jobs: - build: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./header-gen - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "20.x" - registry-url: "https://npm.pkg.github.com" - cache: npm - cache-dependency-path: header-gen/package-lock.json - - run: npm ci - env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: microbit-foundation/npm-package-versioner-action@v1 - with: - working-directory: ./header-gen - - run: npm run build - - run: npm publish - if: github.ref == 'refs/heads/main' || github.event_name == 'release' && github.event.action == 'created' - env: - NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/header-gen.yml b/.github/workflows/header-gen.yml index 712892f..84c62b9 100644 --- a/.github/workflows/header-gen.yml +++ b/.github/workflows/header-gen.yml @@ -1,10 +1,18 @@ name: Header Generator Tests on: + release: + types: [created] push: branches: '*' + paths: + - "header-gen/**" + - "**/header-gen.yml" pull_request: branches: '*' + paths: + - "header-gen/**" + - "**/header-gen.yml" jobs: build-and-test: @@ -18,11 +26,19 @@ jobs: uses: actions/setup-node@v4 with: node-version: '20' + registry-url: "https://npm.pkg.github.com" + cache: npm + cache-dependency-path: header-gen/package-lock.json - name: Install Dependencies run: npm ci working-directory: ./header-gen + - name: Update version + uses: microbit-foundation/npm-package-versioner-action@v1 + with: + working-directory: ./header-gen + - name: Build run: npm run build working-directory: ./header-gen @@ -30,3 +46,9 @@ jobs: - name: Run Jest Tests run: npm test working-directory: ./header-gen + + - name: Publish + run: npm publish + if: github.ref == 'refs/heads/main' || github.event_name == 'release' && github.event.action == 'created' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From c5c193a45da7695a97c17ba3d99f65c3b391a807 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Wed, 5 Jun 2024 17:13:02 +0100 Subject: [PATCH 11/13] Add permissions --- .github/workflows/header-gen.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/header-gen.yml b/.github/workflows/header-gen.yml index 84c62b9..a66036b 100644 --- a/.github/workflows/header-gen.yml +++ b/.github/workflows/header-gen.yml @@ -18,6 +18,9 @@ jobs: build-and-test: name: Build & Test TS lib runs-on: ubuntu-latest + permissions: + contents: read + packages: write steps: - uses: actions/checkout@v4 From 7c5b26ef8f59621cec39579f151d157533dd5898 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Wed, 5 Jun 2024 17:17:40 +0100 Subject: [PATCH 12/13] Don't update version on PR --- .github/workflows/header-gen.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/header-gen.yml b/.github/workflows/header-gen.yml index a66036b..c986465 100644 --- a/.github/workflows/header-gen.yml +++ b/.github/workflows/header-gen.yml @@ -38,6 +38,7 @@ jobs: working-directory: ./header-gen - name: Update version + if: github.event_name != 'pull_request' uses: microbit-foundation/npm-package-versioner-action@v1 with: working-directory: ./header-gen From 7227608f68aa256b15e0e46c9430933bcfe7be01 Mon Sep 17 00:00:00 2001 From: Robert Knight <95928279+microbit-robert@users.noreply.github.com> Date: Tue, 11 Jun 2024 10:40:08 +0100 Subject: [PATCH 13/13] Only publish on GH release Co-authored-by: Carlos Pereira Atencio --- .github/workflows/header-gen.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/header-gen.yml b/.github/workflows/header-gen.yml index c986465..c161de5 100644 --- a/.github/workflows/header-gen.yml +++ b/.github/workflows/header-gen.yml @@ -53,6 +53,6 @@ jobs: - name: Publish run: npm publish - if: github.ref == 'refs/heads/main' || github.event_name == 'release' && github.event.action == 'created' + if: github.event_name == 'release' && github.event.action == 'created' env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}