From df70d30f9296a76c8ca48f6034c9591229b22f80 Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Wed, 11 Mar 2020 08:52:41 +0100 Subject: [PATCH] build: use yarn to publish (#5690) --- .github/workflows/release.yml | 5 +++-- .github/workflows/test.yml | 8 ++++---- .releaserc | 5 ++--- package.json | 4 +++- tools/dispatch-release.mjs | 11 +++++++++++ tools/package.json | 5 +++-- tools/release.mjs | 32 ++++++++++++++++++++++++++++++++ tools/utils.mjs | 12 ++++++++++++ 8 files changed, 70 insertions(+), 12 deletions(-) create mode 100644 tools/release.mjs create mode 100644 tools/utils.mjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4a77a94a3..4a2bf8b518 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,9 +39,10 @@ jobs: git config --global core.symlinks true git config --global user.email 'bot@renovateapp.com' git config --global user.name 'Renovate Bot' - node --version + yarn config set version-git-tag false + echo "Node $(node --version)" python --version - yarn --version + echo "Yarn $(yarn --version)" pip --version - uses: actions/checkout@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 06333d3135..8253b86878 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -63,9 +63,9 @@ jobs: git config --global core.symlinks true git config --global user.email 'bot@renovateapp.com' git config --global user.name 'Renovate Bot' - node --version + echo "Node $(node --version)" python --version - yarn --version + echo "Yarn $(yarn --version)" pip --version - uses: actions/checkout@v2 @@ -161,9 +161,9 @@ jobs: git config --global core.symlinks true git config --global user.email 'bot@renovateapp.com' git config --global user.name 'Renovate Bot' - node --version + echo "Node $(node --version)" python --version - yarn --version + echo "Yarn $(yarn --version)" - uses: actions/checkout@v2 diff --git a/.releaserc b/.releaserc index 2f608f64c0..10e867e75d 100644 --- a/.releaserc +++ b/.releaserc @@ -5,11 +5,10 @@ [ "@semantic-release/exec", { - "publishCmd": "./.github/workflows/release-docker.sh ${nextRelease.version} ${nextRelease.gitHead} && yarn dispatch-release ${nextRelease.version}" + "publishCmd": "yarn release --release=${nextRelease.version} --sha=${nextRelease.gitHead}" } ], - "@semantic-release/github", - "@semantic-release/npm" + "@semantic-release/github" ], "analyzeCommits": { "preset": "angular", diff --git a/package.json b/package.json index 933fc4899b..1d822153f8 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "copy-static-files": "copyfiles -u 1 -e **/__fixtures__/** -e **/__mocks__/** lib/**/*.json lib/**/*.py dist/", "create-json-schema": "babel-node --extensions \".ts,.js\" -- bin/create-json-schema.js && prettier --write \"renovate-schema.json\"", "debug": "babel-node --inspect-brk --extensions \".ts,.js\" -- lib/renovate.ts", - "dispatch-release": "node --experimental-modules tools/dispatch-release.mjs", "eslint": "eslint --ext .js,.mjs,.ts lib/ test/ tools/", "eslint-fix": "eslint --ext .js,.mjs,.ts --fix lib/ test/ tools/", "jest": "cross-env NODE_ENV=test LOG_LEVEL=fatal node --expose-gc node_modules/jest/bin/jest.js", @@ -29,6 +28,9 @@ "prepare:re2": "node --experimental-modules tools/check-re2.mjs", "prettier": "prettier --list-different \"**/*.{ts,js,mjs,json,md}\"", "prettier-fix": "prettier --write \"**/*.{ts,js,mjs,json,md}\"", + "release": "run-s \"release:* {@}\" --", + "release:release": "node --experimental-modules tools/release.mjs", + "release:dispatch": "node --experimental-modules tools/dispatch-release.mjs", "start": "babel-node --extensions \".ts,.js\" -- lib/renovate.ts", "test-dirty": "git diff --exit-code", "test-e2e": "npm pack && cd e2e && yarn install --no-lockfile --ignore-optional --prod && yarn test", diff --git a/tools/dispatch-release.mjs b/tools/dispatch-release.mjs index acd61dd550..610465dde4 100644 --- a/tools/dispatch-release.mjs +++ b/tools/dispatch-release.mjs @@ -1,9 +1,19 @@ import got from 'got'; import shell from 'shelljs'; +import program from './utils.mjs'; + +const version = program.release; +const dry = program.dryRun; const baseUrl = 'https://api.github.com/'; +shell.echo(`Dispatching version: ${version}`); + (async () => { + if (dry) { + shell.echo('dry-run done.'); + return; + } await got(`repos/${process.env.GITHUB_REPOSITORY}/dispatches`, { baseUrl, headers: { @@ -18,6 +28,7 @@ const baseUrl = 'https://api.github.com/'; client_payload: { sha: process.env.GITHUB_SHA, ref: process.env.GITHUB_REF, + version, }, }, }); diff --git a/tools/package.json b/tools/package.json index bc96b581de..41853d2eb1 100644 --- a/tools/package.json +++ b/tools/package.json @@ -2,7 +2,8 @@ "private":true, "type": "module", "dependencies": { - "shelljs": "0.8.3", - "got": "9.6.0" + "commander": "4.1.1", + "got": "9.6.0", + "shelljs": "0.8.3" } } diff --git a/tools/release.mjs b/tools/release.mjs new file mode 100644 index 0000000000..7f5af09f77 --- /dev/null +++ b/tools/release.mjs @@ -0,0 +1,32 @@ +import shell from 'shelljs'; +import program from './utils.mjs'; + +const version = program.release; +const sha = program.sha; +const dry = program.dryRun; + +let err = false; + +shell.echo(`Publishing version: ${version}`); + +try { + shell.echo('Publishing docker images ...'); + if (!dry) + shell.exec(`./.github/workflows/release-docker.sh ${version} ${sha}`); + else shell.echo('dry-run done.'); +} catch (e) { + shell.echo(e.toString()); + err = true; +} + +try { + shell.echo('Publishing npm package ...'); + if (!dry) + shell.exec(`yarn publish --non-interactive --new-version ${version}`); + else shell.echo('dry-run done.'); +} catch (e) { + shell.echo(e.toString()); + err = true; +} + +if (err) shell.exit(1); diff --git a/tools/utils.mjs b/tools/utils.mjs new file mode 100644 index 0000000000..e8d9c04582 --- /dev/null +++ b/tools/utils.mjs @@ -0,0 +1,12 @@ +import commander from 'commander'; + +const program = new commander.Command(); +program + .version('0.0.1') + .requiredOption('-r, --release <type>', 'Version to use') + .option('-s, --sha <type>', 'Sha to use') + .option('-d, --dry-run'); + +program.parse(process.argv); + +export default program; -- GitLab