Skip to content

Commit

Permalink
automate releases (#3052)
Browse files Browse the repository at this point in the history
* automate releases

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* drop publish-undici-types job

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

---------

Signed-off-by: Matteo Collina <hello@matteocollina.com>
  • Loading branch information
mcollina committed Apr 8, 2024
1 parent 502e134 commit f51f226
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 26 deletions.
26 changes: 0 additions & 26 deletions .github/workflows/publish-undici-types.yml

This file was deleted.

86 changes: 86 additions & 0 deletions .github/workflows/release.yml
@@ -0,0 +1,86 @@
name: Publish package to npm

permissions:
contents: read

on:
workflow_dispatch:
inputs:
version:
description: 'The version number to release (has priority over release_type)'
type: string
release_type:
description: Type of release
type: choice
default: patch
options:
- patch
- minor
- major

jobs:
release:
runs-on: ubuntu-latest

permissions:
contents: write
id-token: write

environment: release

outputs:
version: ${{ steps.bump.outputs.version }}

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- run: npm install -g npm@latest
- run: npm install
- name: Git Config
run: |
git config --global user.email "hello@matteocollina.com"
git config --global user.name "Matteo Collina"
- name: Change version number and push
id: bump
run: |
npm version ${{ inputs.version || inputs.release_type }} --git-tag-version=false
VERSION=`jq -r ".version" package.json`
echo "version=$VERSION" >> $GITHUB_OUTPUT
git add -u
git commit -m "Bumped v$VERSION"
git push origin HEAD:main
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: node scripts/generate-undici-types-package-json.js
- run: npm publish --provenance
working-directory: './types'
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

releasenotes:
runs-on: ubuntu-latest
needs: release

permissions:
contents: write

env:
VERSION: ${{ needs.release.outputs.version }}

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- name: 'Install release-notes'
run: npm i @matteo.collina/release-notes -g
- name: 'Create release notes'
run: |
NOTES=`release-notes -a ${{ secrets.GITHUB_TOKEN }} -t v$VERSION -r undici -o nodejs`
echo "# Released version $VERSION :rocket:" >> $GITHUB_STEP_SUMMARY
echo "url: $NOTES" >> $GITHUB_STEP_SUMMARY
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Expand Up @@ -5,6 +5,7 @@
* [Lint](#lint)
* [Test](#test)
* [Coverage](#coverage)
* [Releases](#releases)
* [Update `WPTs`](#update-wpts)
* [Building for externally shared node builtins](#external-builds)
* [Developer's Certificate of Origin 1.1](#developers-certificate-of-origin)
Expand Down Expand Up @@ -166,6 +167,11 @@ npm run test
npm run coverage
```

<a id="releases"></a>
### Issuing Releases

Use the release github action.

<a id="external-builds"></a>
### Building for externally shared node builtins

Expand Down

0 comments on commit f51f226

Please sign in to comment.