-
Notifications
You must be signed in to change notification settings - Fork 844
Add a GitHub Workflow that auto-releases regularly #1372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Agreed in a chat with @aluzzardi:
We talked with @samalba yesterday about the mailing list update - a.k.a. product update - which happens even less frequently than the Discord one, and is more involved. I am mentioning that for completeness, it's not related to this PR. Something that we did not have time to properly dig into are the release versions. Currently release versions start with From a semver perspective, Continuing the semver idea, While the |
Found it. I'm actually not sure if this could be useful, but there's a primitive to trigger a workflow based on another workflow: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#workflow_run I'm not sure if we can use this for tagging (since we're using a |
To be discussed, but on top of my head we'll probably release a Once we're ready to enable Europa by default, we can switch to /cc @samalba who designed the current release schema |
I love this idea! Taking it as a follow-up to this action as I am in the only one in the UTC timezone 😃 |
|
LGTM. Just a note: if we are not timely writing the release extract to Discord, it'll be harder and harder to do so (eg. manually extract the generated changelog and post highlights to Discord) - exactly like @jlongtine did it last time on Also: it seems the auto-schedule is disabled in the PR? Is it on purpose to start with manual triggers? I am fine to merge as-is anyhow. |
Yes, agreed. While this is something that we are doing manually for now, there are open-source projects that do this successfully in an automated way. I am leaving this as a follow-up improvement, we can discuss various options then.
This PR is not there yet. I started the conversation early to get an idea for what I was missing, and to share the general direction. I will update when it's ready to merge, thank you for the attention! |
|
This is now ready to review and merge @samalba @aluzzardi @shykes I have captured as much as I thought was reasonable in the git commit message. I ran extensive tests on https://github.com/gerhard/dagger/actions/workflows/trigger-release.yml, you can check them out to see how this behaves in various scenarios. Oh, and the latest tag of my dagger/dagger fork is Notice that the tags created by the |
|
✔️ Deploy Preview for devel-docs-dagger-io ready! 🔨 Explore the source changes: fcdda0b 🔍 Inspect the deploy log: https://app.netlify.com/sites/devel-docs-dagger-io/deploys/61e1dd03d91a9100087600cb 😎 Browse the preview: https://deploy-preview-1372--devel-docs-dagger-io.netlify.app/reference/argocd |
…week While talking with @aluzzardi, we thought that regular auto-releases which happen with no intervention on our part would be a good idea. The last Dagger release (0.1.0-alpha.31) was over 1 month ago, and there are Europa-related changes which we want to make available in the Dagger GitHub Action. We should never have more than 1 week of unreleased changes. While more often is better, and we may need to tweak this later, this is a decent starting point: release every Tuesday, 5pm UTC & 9am SFO. We had to adjust the starting point slightly so that we do not start at the top of the hour when there is high load on GitHub Actions (see the inline comments for more details) The workflow can also be triggered manually, and a custom tag can be provided optionally. If no tag is provided, the last one will be incremented as expected, e.g. v0.1.0-alpha.31 -> v0.1.0-alpha.32. Before you get too carried away with custom tags, let's talk about the unexpected side-effects which are not worth covering in this commit message ("people over processes"). There is also a concurrency setting which will not prevent multiple releases to be triggered, but at least these jobs will not run in parallel. I looked into cancelling the current workflow if another one of the same type is running, but I couldn't get it to work properly within my 30 mins time-box so I stopped. There is a lot to talk about our releases AFTER this gets merged, so let's defer those conversations until we are happy with the first step which I think is in the right direction. Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
Rebased on top of |
|
If you're happy for this to go in @aluzzardi, please go for that Merge pull request dopamine shot. |
|
There is no change here which would surprise @aluzzardi, so I am going to be optimistically proactive and merge this. The assumption is that with this merged, Next step: kick off the release schedule discussion so that we know what happens between FWIW, this PR reminds me of a great article which I read some months ago: Ship / Show / Ask |
|
The workflow was triggered as expected by the cron schedule: The problem was that on the first attempt, the run failed because Having read this GitHub documentation page, it became obvious that we needed to grant Read and write permissions to GitHub Workflows at an organisation level for this to work: After the new write permissions were applied, the second attempt worked. I will iterate on my fork to better understand what happened, then PR the fix once I have it. For now, I will delete the new tag Q: Why did the new |







Talking with @aluzzardi, we think that regular releases which happen with no intervention on our part would be a good idea.
The last Dagger release - v0.1.0-alpha.31 - was over 1 month ago, and there are many Europa-related changes which we want to make available in the Dagger GitHub Action, as well as to users that do not build Dagger locally. The only thing that we need to do is create a new git tag & push. Remembering to do it, and then actually doing it doesn't always happen, and when it does, it's all ad-hoc.
We don't think that there should be more than 1 week of unreleased changes. While more often is better, and we may need to tweak this later, this is a decent starting point: release at least every Tuesday, 5pm UTC & 9am SFO.
The general consensus is to always be shipping. If we want to release an ad-hoc revision, we can still do it by triggering this GitHub Action manually.