diff --git a/scripts/semantic-release-config.cjs b/scripts/semantic-release-config.cjs index e9ec9cc5..fb1f959d 100644 --- a/scripts/semantic-release-config.cjs +++ b/scripts/semantic-release-config.cjs @@ -166,19 +166,10 @@ function createReleaseConfig(env = process.env) { 'pnpm run artifacts:check', 'pnpm run release:readiness', ].join(' && '), - }, - ], - [ - '@semantic-release/npm', - { - pkgRoot: 'dist/public-npm-package', - tarballDir: 'dist/artifacts/npm', - }, - ], - [ - '@semantic-release/exec', - { - publishCmd: 'pnpm run release:published-smoke', + publishCmd: [ + `npm publish dist/artifacts/npm/kaelio-ktx-\${nextRelease.version}.tgz --tag ${tag} --access public --provenance`, + 'pnpm run release:published-smoke', + ].join(' && '), }, ], ...releaseGitPlugins(kind), diff --git a/scripts/semantic-release-config.test.mjs b/scripts/semantic-release-config.test.mjs index 99cd53c4..c62f0fdf 100644 --- a/scripts/semantic-release-config.test.mjs +++ b/scripts/semantic-release-config.test.mjs @@ -27,20 +27,20 @@ describe('semantic-release config', () => { ]); const config = createReleaseConfig({ KTX_RELEASE_KIND: 'rc', GITHUB_REF_NAME: 'main' }); - assert.deepEqual( + assert.equal( config.plugins.find((plugin) => Array.isArray(plugin) && plugin[0] === '@semantic-release/npm'), - [ - '@semantic-release/npm', - { - pkgRoot: 'dist/public-npm-package', - tarballDir: 'dist/artifacts/npm', - }, - ], + undefined, + '@semantic-release/npm must not run; the exec publishCmd publishes the pre-built tarball', ); assert.match( releaseExecOptions(config).prepareCmd, /update-public-release-version\.mjs "\$\{nextRelease\.version\}" "next"/, ); + assert.match( + releaseExecOptions(config).publishCmd, + /^npm publish dist\/artifacts\/npm\/kaelio-ktx-\$\{nextRelease\.version\}\.tgz --tag next --access public --provenance/, + ); + assert.match(releaseExecOptions(config).publishCmd, /pnpm run release:published-smoke/); assert.doesNotMatch(JSON.stringify(config.plugins), /release:npm-publish/); const releaseFilePluginNames = pluginNames(config).filter( (plugin) => plugin === '@semantic-release/changelog' || plugin === '@semantic-release/git', @@ -62,6 +62,10 @@ describe('semantic-release config', () => { releaseExecOptions(config).prepareCmd, /update-public-release-version\.mjs "\$\{nextRelease\.version\}" "latest"/, ); + assert.match( + releaseExecOptions(config).publishCmd, + /^npm publish dist\/artifacts\/npm\/kaelio-ktx-\$\{nextRelease\.version\}\.tgz --tag latest --access public --provenance/, + ); assert.equal(config.plugins.includes('./scripts/semantic-release-version-policy.cjs'), false); });