From 5498630e91452d39a0e700130ab6be7e4c88fe16 Mon Sep 17 00:00:00 2001 From: Michele Gerarduzzi Date: Tue, 16 Jan 2024 18:05:14 +0100 Subject: [PATCH 1/2] feat(ci): add manual release workflow --- .github/workflows/release.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..3089f6e9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,34 @@ +name: release +on: workflow_dispatch +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Verify branch name + if: github.ref != 'refs/heads/master' + run: | + echo "🚨 The release must start from the master branch!" + exit 1 + + - name: Configure releaser details + run: | + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + + - name: Install pnpm + uses: wyvox/action-setup-pnpm@v3 + with: + pnpm-version: 8.5.1 + node-version: 18.x + node-registry-url: "https://registry.npmjs.org" + + - name: Trigger release script + run: pnpm run release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From 2e90b46b7e593b9dd1bdd01311419b44ebad22ff Mon Sep 17 00:00:00 2001 From: Michele Gerarduzzi Date: Tue, 16 Jan 2024 18:18:54 +0100 Subject: [PATCH 2/2] docs: update release docs to match new release workflow --- RELEASE.md | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index f9270a96..6225812b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,40 +1,12 @@ # Release Process -Releases are mostly automated using +Releases are automated using [release-it](https://github.com/release-it/release-it/) and [conventional-changelog](https://github.com/release-it/conventional-changelog). -## Release +## How to release -The release process is straightforward: - -- First, ensure that you have installed your project’s dependencies: - -```sh -pnpm install -``` - -- Second, ensure that you have obtained a - [GitHub personal access token][generate-token] with the `repo` scope (no - other permissions are needed). Make sure the token is available as the - `GITHUB_AUTH` environment variable. - - For instance: - - ```bash - export GITHUB_AUTH=abc123def456 - ``` - -[generate-token]: https://github.com/settings/tokens/new?scopes=repo&description=GITHUB_AUTH+env+variable - -- And last (but not least 😁) do your release. - -```sh -pnpm release -``` - -[release-it](https://github.com/release-it/release-it/) manages the actual -release process. It will prompt you to to choose the version number after which -you will have the chance to hand tweak the changelog to be used (for the -`CHANGELOG.md` and GitHub release), then `release-it` continues on to tagging, -pushing the tag and commits, etc. +- [Click here](https://github.com/qonto/ember-phone-input/actions/workflows/release.yml) to visit the page for the `release` Action +- If you have the right **permissions**, you will see a "Run workflow" button, click on it +- Click on "Run workflow" in the dropdown +- The pipeline will release on GitHub and npm for you, enjoy!