Automatic GitHub Release: Automatically generate a release when the package.json version changes.
It's currently being used to manage releases of itself. I created it to help manage releases of some private packages I'm working on.
Automatically generate a release when the package.json version changes
Automatic GitHub Release
Automatically generate a release when the package.json version changes. The release name and tag will match the new version. If no releases yet exist, this action will create the first release.
The release notes will contain a change log generated from git history in the following format:
- f0d91bd Making progress - 275e3e2 Initial commit
This action makes a few assumptions:
fetch-depth: 0is used before this action runs. That allows this action to have all the information it needs to generate the change log from the git history.
- You are only releasing from one branch
- It is only used during
name: Release on push branches - master jobs: build: name: Release runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Release uses…
What I learned:
- Debugging is rough. act makes it easier but it's not a perfect solution.
- The first gotcha I ran into was that steps need an ID in order to reference their output. For some reason can't reference steps by their name.
- Actions can't depend on other actions. My original plan was to create a few small actions and stitch them together into a larger composite action but it's not possible.
- Use @actions/core, even if you think your script will be small. It makes input, output, errors, etc much easier. Chances are your script will become quite a bit more complex when you start handling errors.
- You must bundle all code that your actions needs, including dependencies. The best solution is to use @vercel/ncc.