chore: fix release process so bbrnj gets right version of rnj
diff --git a/package.json b/package.json index ac79918..164a106 100644 --- a/package.json +++ b/package.json
@@ -128,7 +128,7 @@ "update-yarn-versions": "node ./scripts/update-yarn-versions.js > nodejs/private/yarn_versions.bzl", "format": "git-clang-format", "format-all": "clang-format --glob='{internal/**/,examples/**/}*.{js,ts}' -i", - "version": "conventional-changelog -p angular -i CHANGELOG.md -s && node ./scripts/on-version.js && bazel build //:release //:release-core && node ./scripts/on-release.js && git stage version.bzl docs/install.md packages/create/index.js README.md CHANGELOG.md e2e/*/WORKSPACE examples/*/WORKSPACE", + "version": "conventional-changelog -p angular -i CHANGELOG.md -s && node ./scripts/on-version.js && bazel build //:release-core && node ./scripts/on-release.js rules_nodejs && bazel build //:release && node ./scripts/on-release.js build_bazel_rules_nodejs && git stage version.bzl docs/install.md packages/create/index.js README.md CHANGELOG.md e2e/*/WORKSPACE examples/*/WORKSPACE", "postinstall": "patch-package && node internal/npm_install/test/postinstall.js" }, "husky": {
diff --git a/scripts/on-release.js b/scripts/on-release.js index 77aaea6..8c2e4f2 100644 --- a/scripts/on-release.js +++ b/scripts/on-release.js
@@ -6,8 +6,13 @@ const path = require('path'); const shell = require('shelljs'); const version = require('../package.json').version; -const artifact = 'dist/bin/release.tar.gz'; -const coreArtifact = 'dist/bin/release-core.tar.gz'; + +const starlarkModule = process.argv[2]; +if (starlarkModule !== 'build_bazel_rules_nodejs' && starlarkModule != 'rules_nodejs') { + throw new Error("first argument must be module to release (build_bazel_rules_nodejs or rules_nodejs)") +} +const artifactSuffix = starlarkModule == 'rules_nodejs' ? '-core' : '' +const artifact = `dist/bin/release${artifactSuffix}.tar.gz`; function computeSha256(path) { const hash = crypto.createHash('sha256'); @@ -16,20 +21,23 @@ return hash.update(fs.readFileSync(path)).digest('hex'); } const sha256 = computeSha256(artifact); -const coreSha256 = computeSha256(coreArtifact); -for (const f of ['docs/install.md', 'packages/create/index.js']) { +if (starlarkModule == 'build_bazel_rules_nodejs') { + for (const f of ['docs/install.md', 'packages/create/index.js']) { + shell.sed( + '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz', + `download/${version}/rules_nodejs-${version}.tar.gz`, f); + shell.sed('-i', 'sha256 = \"[0-9a-f]+\"', `sha256 = "${sha256}"`, f); + } +} else { shell.sed( - '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz', - `download/${version}/rules_nodejs-${version}.tar.gz`, f); - shell.sed('-i', 'sha256 = \"[0-9a-f]+\"', `sha256 = "${sha256}"`, f); + '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-core-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz', + `download/${version}/rules_nodejs-core-${version}.tar.gz`, 'repositories.bzl') + + shell.sed('-i', 'core_sha = \"[0-9a-f]+\"', `core_sha = "${sha256}"`, 'repositories.bzl'); } -shell.sed( - '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-core-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz', - `download/${version}/rules_nodejs-core-${version}.tar.gz`, 'repositories.bzl') -shell.sed('-i', 'core_sha = \"[0-9a-f]+\"', `core_sha = "${coreSha256}"`, 'repositories.bzl'); -shell.cp('-f', artifact, `rules_nodejs-${version}.tar.gz`); -shell.cp('-f', coreArtifact, `rules_nodejs-core-${version}.tar.gz`); + +shell.cp('-f', artifact, `rules_nodejs${artifactSuffix}-${version}.tar.gz`); /** * Returns an array of all WORKSPACE the files under a directory. @@ -55,21 +63,14 @@ for (const f of workspaceFiles) { let workspaceContents = fs.readFileSync(f, {encoding: 'utf-8'}); - const regex = new RegExp(`http_archive\\(\\s*name\\s*\\=\\s*"build_bazel_rules_nodejs"[^)]+`); + + const regex = new RegExp(`http_archive\\(\\s*name\\s*\\=\\s*"${starlarkModule}"[^)]+`); const replacement = `http_archive( - name = "build_bazel_rules_nodejs", + name = "${starlarkModule}", sha256 = "${sha256}", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/${version}/rules_nodejs-${ - version}.tar.gz"], + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/${version}/rules_nodejs${artifactSuffix}-${ + version}.tar.gz"], `; workspaceContents = workspaceContents.replace(regex, replacement); - const coreRegex = new RegExp(`http_archive\\(\\s*name\\s*\\=\\s*"rules_nodejs"[^)]+`); - const coreReplacement = `http_archive( - name = "rules_nodejs", - sha256 = "${coreSha256}", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/${version}/rules_nodejs-core-${ - version}.tar.gz"], -`; - workspaceContents = workspaceContents.replace(coreRegex, coreReplacement); fs.writeFileSync(f, workspaceContents); }