From 441142da6dc07ff78f76cbe65ec37d7ef1b4537d Mon Sep 17 00:00:00 2001 From: Jeroen de Bruijn Date: Sun, 22 Mar 2020 20:40:26 +0100 Subject: [PATCH] chore(release): use updated workflow without github-push-action dep --- .github/workflows/release.yml | 48 ++++++---- .versionrc.js | 6 ++ package-lock.json | 160 ++++++++++++++++++++++++++++++++++ package.json | 2 + 4 files changed, 200 insertions(+), 16 deletions(-) create mode 100644 .versionrc.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 98531d70..ed3b8928 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,11 @@ on: jobs: release: runs-on: ubuntu-latest - if: "startsWith(github.event.commits[0].message, 'chore(release): trigger release process [ci release]')" + if: | + github.event.commits[0].message == 'chore(release): trigger release process [ci release]' || + github.event.commits[0].message == 'chore(release): trigger release process [ci release][major]' || + github.event.commits[0].message == 'chore(release): trigger release process [ci release][minor]' || + github.event.commits[0].message == 'chore(release): trigger release process [ci release][patch]' steps: - name: Checkout uses: actions/checkout@v2 @@ -25,25 +29,37 @@ jobs: registry-url: 'https://registry.npmjs.org' - name: Install project run: npm ci - - name: Release as major - if: endsWith(github.event.commits[0].message, '[ci release][major]') - run: npx --no-install standard-version --release-as major - - name: Release as minor - if: endsWith(github.event.commits[0].message, '[ci release][minor]') - run: npx --no-install standard-version --release-as minor - - name: Release as patch - if: endsWith(github.event.commits[0].message, '[ci release][patch]') - run: npx --no-install standard-version --release-as patch - name: Release - if: endsWith(github.event.commits[0].message, '[ci release]') - run: npx --no-install standard-version - - name: Push release - uses: ad-m/github-push-action@v0.5.0 + run: | + readonly COMMIT_MESSAGE="${{ github.event.commits[0].message }}" + if [[ "${COMMIT_MESSAGE: -11: -1}" == 'ci release' ]]; then + echo "::set-env name=NEXT_VERSION::$(npm run release:version --silent)" + npx --no-install standard-version + else + readonly RELEASE_TYPE="${COMMIT_MESSAGE: -6: -1}" + echo "::set-env name=NEXT_VERSION::$( + npm run release:version --silent -- --releaseAs "${RELEASE_TYPE}" + )" + npx --no-install standard-version --release-as "${RELEASE_TYPE}" + fi + - name: Publish release + run: git push --follow-tags + - name: Publish GitHub release + uses: actions/create-release@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - github_token: ${{ secrets.GITHUB_TOKEN }} + tag_name: v${{ env.NEXT_VERSION }} + release_name: v${{ env.NEXT_VERSION }} + body: | + See the the [changelog]( + https://github.com/${{ github.repository }}/blob/master/CHANGELOG.md + ) for the changes included in this release. prevent_failed_status: name: Prevent failed status when skipped runs-on: ubuntu-latest steps: - name: Prevent failed status when skipped - run: echo "Run this job to prevent the workflow status from showing as failed when all other jobs are skipped." + run: | + echo "Run this job to prevent the workflow status from showing as" \ + "failed when all other jobs are skipped." diff --git a/.versionrc.js b/.versionrc.js new file mode 100644 index 00000000..5a9e1fe9 --- /dev/null +++ b/.versionrc.js @@ -0,0 +1,6 @@ +module.exports = { + scripts: { + prerelease: + 'if [ "$(git branch --show-current)" != "master" ]; then exit 1; fi', + }, +}; diff --git a/package-lock.json b/package-lock.json index 9b3e6b9d..eb08450e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3265,6 +3265,166 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "next-standard-version": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/next-standard-version/-/next-standard-version-2.1.0.tgz", + "integrity": "sha512-3SrHsyTE/H8sX9ijHk8/HOVx1TUzedwSQkytPVvjylYfWuxZWwrutCuSyT2YfDe7V3FtXVuG5YAtdyXORAKF4w==", + "dev": true, + "requires": { + "semver": "7.1.3", + "standard-version": "7.1.0", + "strip-ansi": "6.0.0", + "yargs": "15.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "semver": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", + "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", diff --git a/package.json b/package.json index 19c0d600..b740b6bc 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "format": "concurrently \"npm:format:default\"", "format:default": "prettier --write \"**/*.{js,jsx,vue,ts,css,less,scss,html,htm,json,md,markdown,yml,yaml}\"", "format-file:default": "prettier --write", + "release:version": "next-standard-version", "release:changelog": "standard-version --dry-run --skip.commit=true --skip.tag=true", "release:commit": "git commit --allow-empty -m \"chore(release): trigger release process [ci release]\"", "release:message": "chalk -t \"Run {green.bold git push} to publish the release or {red.bold git reset HEAD^} to undo the release.\"", @@ -37,6 +38,7 @@ "eslint-plugin-prettier": "3.1.2", "husky": "4.2.3", "lint-staged": "10.0.8", + "next-standard-version": "2.1.0", "npm-run-all": "4.1.5", "prettier": "^2.0.1", "standard-version": "7.1.0",