From 86ef0ff808222a9270c7b4fd041cb6af68399c98 Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 10:51:13 +0000 Subject: [PATCH 1/8] Added option for publishing sub-packages --- .github/workflows/tag-release.yml | 15 +++++++++++---- release.config.cjs | 7 +++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 25e71ea..c034fa0 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -16,9 +16,14 @@ on: required: false default: "0.18.0" publish_package: - description: "Whether to publish a package to an npm registry" + description: "Whether to publish a package from the root folder to an npm registry" required: true type: boolean + publish_subpackages: + description: "comma separated list of subpackage folders to publish to an npm registry" + required: false + type: string + default: "" tag_format: description: "The tag format to use for the release tags" required: false @@ -70,6 +75,7 @@ jobs: uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 with: repository: NHSDigital/eps-common-workflows + ref: AEA-6028 sparse-checkout-cone-mode: false sparse-checkout: | package.json @@ -230,7 +236,7 @@ jobs: name: config_artifact - name: Cache asdf - if: ${{ inputs.publish_package }} + if: inputs.publish_package || inputs.publish_subpackages != '' uses: actions/cache@v5 with: path: | @@ -240,7 +246,7 @@ jobs: ${{ runner.os }}-asdf- - name: Install asdf dependencies in .tool-versions - if: ${{ inputs.publish_package }} + if: inputs.publish_package || inputs.publish_subpackages != '' uses: asdf-vm/actions/install@b7bcd026f18772e44fe1026d729e1611cc435d47 with: asdf_version: ${{ inputs.asdfVersion }} @@ -248,7 +254,7 @@ jobs: PYTHON_CONFIGURE_OPTS: --enable-shared - name: Install Dependencies and Build Package - if: ${{ inputs.publish_package }} + if: inputs.publish_package || inputs.publish_subpackages != '' run: | make install make build @@ -315,6 +321,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} BRANCH_NAME: ${{ inputs.branch_name }} PUBLISH_PACKAGE: ${{ inputs.publish_package }} + PUBLISH_SUBPACKAGES: ${{ inputs.publish_subpackages }} TAG_FORMAT: ${{ inputs.tag_format }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} MAIN_BRANCH: ${{ inputs.main_branch }} diff --git a/release.config.cjs b/release.config.cjs index 01b1935..60a1190 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -3,6 +3,7 @@ const { readFileSync } = require("fs") const commitTemplate = readFileSync("./releaseNotesTemplates/commit.hbs").toString() const publish_package = process.env.PUBLISH_PACKAGE === "true" +const publish_subpackages = process.env.PUBLISH_SUBPACKAGES?.split(",").map(s => s.trim()).filter(s => s.length > 0) || [] const mainBranch = process.env.MAIN_BRANCH || "main" module.exports = { @@ -68,6 +69,12 @@ module.exports = { } ], ...(publish_package ? ["@semantic-release/npm"] : []), + ...publish_subpackages.map(subpackage => [ + "@semantic-release/npm", + { + pkgRoot: subpackage + } + ]), [ "@semantic-release/github", { From cebdda4ff41dccf3d3422ef9dd8c944dfdbcab1f Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS <95283781+MatthewPopat-NHS@users.noreply.github.com> Date: Thu, 15 Jan 2026 13:04:03 +0000 Subject: [PATCH 2/8] Added publish sub-packages env var to actual publish step --- .github/workflows/tag-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index c034fa0..3b522a6 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -333,6 +333,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} PUBLISH_PACKAGE: ${{ inputs.publish_package }} + PUBLISH_SUBPACKAGES: ${{ inputs.publish_subpackages }} TAG_FORMAT: ${{ inputs.tag_format }} MAIN_BRANCH: ${{ inputs.main_branch }} EXTRA_ASSET: ${{ inputs.extra_artifact_name }} From 5f63ea376dabbfc6ffd6320a16060f6753370786 Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS <95283781+MatthewPopat-NHS@users.noreply.github.com> Date: Thu, 15 Jan 2026 13:21:23 +0000 Subject: [PATCH 3/8] Reverted to pulling build files from main --- .github/workflows/tag-release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 3b522a6..a064d9c 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -75,7 +75,6 @@ jobs: uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 with: repository: NHSDigital/eps-common-workflows - ref: AEA-6028 sparse-checkout-cone-mode: false sparse-checkout: | package.json From d463e325d74457ed81080635e2987063ab512410 Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 14:22:50 +0000 Subject: [PATCH 4/8] Removed option to publish package from the root directory --- .github/workflows/tag-release.yml | 14 ++++---------- release.config.cjs | 2 -- sonar-project.properties | 5 ++++- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index a064d9c..307c191 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -15,12 +15,8 @@ on: type: string required: false default: "0.18.0" - publish_package: - description: "Whether to publish a package from the root folder to an npm registry" - required: true - type: boolean - publish_subpackages: - description: "comma separated list of subpackage folders to publish to an npm registry" + publish_packages: + description: "comma separated list of package folders to publish to an npm registry" required: false type: string default: "" @@ -319,8 +315,7 @@ jobs: env: GITHUB_TOKEN: ${{ github.token }} BRANCH_NAME: ${{ inputs.branch_name }} - PUBLISH_PACKAGE: ${{ inputs.publish_package }} - PUBLISH_SUBPACKAGES: ${{ inputs.publish_subpackages }} + PUBLISH_PACKAGES: ${{ inputs.publish_packages }} TAG_FORMAT: ${{ inputs.tag_format }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} MAIN_BRANCH: ${{ inputs.main_branch }} @@ -331,8 +326,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - PUBLISH_PACKAGE: ${{ inputs.publish_package }} - PUBLISH_SUBPACKAGES: ${{ inputs.publish_subpackages }} + PUBLISH_PACKAGES: ${{ inputs.publish_packages }} TAG_FORMAT: ${{ inputs.tag_format }} MAIN_BRANCH: ${{ inputs.main_branch }} EXTRA_ASSET: ${{ inputs.extra_artifact_name }} diff --git a/release.config.cjs b/release.config.cjs index 60a1190..add5369 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -2,7 +2,6 @@ const { readFileSync } = require("fs") const commitTemplate = readFileSync("./releaseNotesTemplates/commit.hbs").toString() -const publish_package = process.env.PUBLISH_PACKAGE === "true" const publish_subpackages = process.env.PUBLISH_SUBPACKAGES?.split(",").map(s => s.trim()).filter(s => s.length > 0) || [] const mainBranch = process.env.MAIN_BRANCH || "main" @@ -68,7 +67,6 @@ module.exports = { changelogFile: "CHANGELOG.md" } ], - ...(publish_package ? ["@semantic-release/npm"] : []), ...publish_subpackages.map(subpackage => [ "@semantic-release/npm", { diff --git a/sonar-project.properties b/sonar-project.properties index c2aa41b..bfeab5e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,3 +1,6 @@ sonar.organization=nhsdigital sonar.projectKey=NHSDigital_eps-common-workflows -sonar.host.url=https://sonarcloud.io \ No newline at end of file +sonar.host.url=https://sonarcloud.io + +sonar.coverage.exclusions=\ + release.config.js \ No newline at end of file From a5bbf4ef5de0d2ca4d991595261bad35d8116733 Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 14:32:17 +0000 Subject: [PATCH 5/8] Fixed tag release workflow file --- .github/workflows/tag-release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 307c191..e9129bc 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -231,7 +231,7 @@ jobs: name: config_artifact - name: Cache asdf - if: inputs.publish_package || inputs.publish_subpackages != '' + if: inputs.publish_packages != '' uses: actions/cache@v5 with: path: | @@ -241,7 +241,7 @@ jobs: ${{ runner.os }}-asdf- - name: Install asdf dependencies in .tool-versions - if: inputs.publish_package || inputs.publish_subpackages != '' + if: inputs.publish_packages != '' uses: asdf-vm/actions/install@b7bcd026f18772e44fe1026d729e1611cc435d47 with: asdf_version: ${{ inputs.asdfVersion }} @@ -249,7 +249,7 @@ jobs: PYTHON_CONFIGURE_OPTS: --enable-shared - name: Install Dependencies and Build Package - if: inputs.publish_package || inputs.publish_subpackages != '' + if: inputs.publish_packages != '' run: | make install make build From 9ed88c8c7d21f6fe0f6d9bd29d76fc1b85ce6d2e Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 14:33:16 +0000 Subject: [PATCH 6/8] Fixed release config for new var name --- release.config.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release.config.cjs b/release.config.cjs index add5369..9c6c739 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -2,7 +2,7 @@ const { readFileSync } = require("fs") const commitTemplate = readFileSync("./releaseNotesTemplates/commit.hbs").toString() -const publish_subpackages = process.env.PUBLISH_SUBPACKAGES?.split(",").map(s => s.trim()).filter(s => s.length > 0) || [] +const publish_packages = process.env.PUBLISH_PACKAGES?.split(",").map(s => s.trim()).filter(s => s.length > 0) || [] const mainBranch = process.env.MAIN_BRANCH || "main" module.exports = { @@ -67,7 +67,7 @@ module.exports = { changelogFile: "CHANGELOG.md" } ], - ...publish_subpackages.map(subpackage => [ + ...publish_packages.map(subpackage => [ "@semantic-release/npm", { pkgRoot: subpackage From 194a3d5a4d00b4755a699981a2ed28821d3ffd1d Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 14:39:59 +0000 Subject: [PATCH 7/8] Fixed workflow calls --- .github/workflows/pull_request.yml | 1 - .github/workflows/release.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 3783357..72ff69d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -47,6 +47,5 @@ jobs: dry_run: true asdfVersion: ${{ needs.get_asdf_version.outputs.asdf_version }} branch_name: ${{ github.event.pull_request.head.ref }} - publish_package: false tag_format: ${{ needs.get_asdf_version.outputs.tag_format }} secrets: inherit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 01b381f..2610b2f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,5 @@ jobs: dry_run: false asdfVersion: ${{ needs.get_asdf_version.outputs.asdf_version }} branch_name: main - publish_package: false tag_format: ${{ needs.get_asdf_version.outputs.tag_format }} secrets: inherit From 83c09c0afa5ab5d34831e9dcc6985ca425e8dfa1 Mon Sep 17 00:00:00 2001 From: MatthewPopat-NHS Date: Thu, 15 Jan 2026 14:44:42 +0000 Subject: [PATCH 8/8] Fixed sonar exclusion --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index bfeab5e..f6b852a 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,4 +3,4 @@ sonar.projectKey=NHSDigital_eps-common-workflows sonar.host.url=https://sonarcloud.io sonar.coverage.exclusions=\ - release.config.js \ No newline at end of file + release.config.cjs \ No newline at end of file