- trigger the action through CURL
- the action generates a changelog diff and some
manifest file diff with the version change (such as package.json).
The next version is inferred using semantic versioning and
conventionnal commits, respecting fix, feat and breaks.
With that new content, you generate a PR.
That PR is labeled with "autorelease"
- When that PR is merged, another action is triggered wich do the
Github Release and fill the body with the changelog diff
Re:Release to NPM and Docker Hub with GitHub Actions and Con...
by time0ut on Friday March 20, 2020 @10:29AM
(#22637751)
Great post. Very clear explanation of things.
The semantic release tooling is so good, I've started using it on non-js projects. I'm using it to manage Terraform modules, base docker images, etc. Once you're doing that, might as well mix in Husky and commit-lint to manage your git hooks and commit messages too.
There are comparable things elsewhere, but node is so ubiquitous in my tool chain already that this is the path of least resistance for me. And it works great!
Re:Release to NPM and Docker Hub with GitHub Actions and Con...
by derberg on Friday March 20, 2020 @10:50AM
(#22637947)
I wanted to also introduce PR title validation, so there is no mistake possible on merging and we follow convetional commits 100% but unfortunately GitHub Actions do not support fork-based workflow properly and those PR checks would be useless :(
Re:Release to NPM and Docker Hub with GitHub Actions and Con...
by time0ut on Friday March 20, 2020 @10:53AM
(#22637974)
Oh, that is unfortunate. Hopefully they fix that. For now, it might be worth writing a little bot that will flag PRs with noncompliant commit messages and titles.
Re:Release to NPM and Docker Hub with GitHub Actions and Con...
by derberg on Friday March 20, 2020 @01:01PM
(#22639175)
Guy from GitHub suggested the same, but how would you really see such workflow in action? all I have in mind seems so complicated that easier would be to write and host dedicated bot really. Supporting PR on Issue level sounds strange
Re:Release to NPM and Docker Hub with GitHub Actions and Con...
by derberg on Friday March 20, 2020 @11:40AM
(#22638443)
I was wondering how do you use semantic-release tooling in non-js. Do you use ".releaserc" file for config and then on CI execute with npx, to have pure repo with no JS thingy? Or are you just using package.json normally? maybe hidden in ".github" ?
Shameless plug, I suggest a workflow very similar with my own github action, https://github.com/rubenfiszel/autochangelog-action. The suggested workflow is to:
I'm one of the people building:
https://www.actionspanel.app/
A GitHub App that lets you trigger your Actions without needing to run cURL
Do you know what could be the issue?
The semantic release tooling is so good, I've started using it on non-js projects. I'm using it to manage Terraform modules, base docker images, etc. Once you're doing that, might as well mix in Husky and commit-lint to manage your git hooks and commit messages too.
There are comparable things elsewhere, but node is so ubiquitous in my tool chain already that this is the path of least resistance for me. And it works great!
Could you elaborate on this?
Issue comment-triggered Actions have a write-access GITHUB_TOKEN, unless I’m mistaken. You could implement the /ok-to-test flow with that.
(I’m working on converting some of VSCode’s triage automation to Actions, for reference)