From 3c84667c4ca10970cd3b70c10ffb0b33f95c8c1e Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Wed, 11 Mar 2020 10:11:01 +0100 Subject: [PATCH] build: refactor release (#5691) --- .eslintrc.js | 7 +++++++ .github/workflows/release.yml | 1 + tools/dispatch-release.mjs | 2 +- tools/release.mjs | 27 +++++++-------------------- tools/utils.mjs | 22 +++++++++++++++++++++- 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 91be6afe29..8aefe0a29a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -82,5 +82,12 @@ module.exports = { '@typescript-eslint/unbound-method': 0, }, }, + { + files: ['**/*.mjs'], + + rules: { + '@typescript-eslint/explicit-function-return-type': 0, + }, + }, ], }; diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4a2bf8b518..8756452acf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,6 +40,7 @@ jobs: git config --global user.email 'bot@renovateapp.com' git config --global user.name 'Renovate Bot' yarn config set version-git-tag false + echo '//registry.yarnpkg.com/:_authToken=${NPM_TOKEN}' > ~/.npmrc echo "Node $(node --version)" python --version echo "Yarn $(yarn --version)" diff --git a/tools/dispatch-release.mjs b/tools/dispatch-release.mjs index 610465dde4..a8dbd9023a 100644 --- a/tools/dispatch-release.mjs +++ b/tools/dispatch-release.mjs @@ -1,6 +1,6 @@ import got from 'got'; import shell from 'shelljs'; -import program from './utils.mjs'; +import { program } from './utils.mjs'; const version = program.release; const dry = program.dryRun; diff --git a/tools/release.mjs b/tools/release.mjs index 7f5af09f77..cb85944a61 100644 --- a/tools/release.mjs +++ b/tools/release.mjs @@ -1,32 +1,19 @@ import shell from 'shelljs'; -import program from './utils.mjs'; +import { program, exec } 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; -} +shell.echo('Publishing docker images ...'); +err = err && !exec(`./.github/workflows/release-docker.sh ${version} ${sha}`); -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; -} +shell.echo('Publishing npm package ...'); +err = + err && + !exec(`yarn publish --non-interactive --new-version ${version} --verbose`); if (err) shell.exit(1); diff --git a/tools/utils.mjs b/tools/utils.mjs index e8d9c04582..49f1e215ff 100644 --- a/tools/utils.mjs +++ b/tools/utils.mjs @@ -1,4 +1,5 @@ import commander from 'commander'; +import shell from 'shelljs'; const program = new commander.Command(); program @@ -9,4 +10,23 @@ program program.parse(process.argv); -export default program; +export { program }; + +/** + * Executes a shell command + * @param cmd {string} The command to execute + * @returns {boolean} Returns true on zero exit code otherwise false + */ +export function exec(cmd) { + try { + if (!program.dryRun) { + const res = shell.exec(cmd); + return res.code === 0; + } + shell.echo(`DRY-RUN: ${cmd}`); + } catch (e) { + shell.echo(e.toString()); + return false; + } + return true; +} -- GitLab