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
x/build/cmd/relui: add ability to schedule workflows #54476
Comments
Change https://go.dev/cl/424002 mentions this issue: |
Change https://go.dev/cl/429695 mentions this issue: |
Change https://go.dev/cl/432397 mentions this issue: |
Change https://go.dev/cl/432404 mentions this issue: |
Change https://go.dev/cl/432405 mentions this issue: |
This adds a new field on workflow creation to schedule the creation of a workflow. Only immediate running and a single future-date schedule are supported, but the vast majority of the implementation for duration (every N minutes) and cron-based schedules is included. Schedules are resumed from the database on start-up. Future CLs will include support for the remaining schedule types, a UI for viewing and deleting schedules, archiving defunct schedules, and notifications for scheduled workflow failures. For golang/go#54476 Change-Id: Ica6a9df85087657aeabd85dae7973487d648dd59 Reviewed-on: https://go-review.googlesource.com/c/build/+/429695 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Jenny Rakoczy <jenny@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Auto-Submit: Jenny Rakoczy <jenny@golang.org>
Adds functionality to schedule Workflows using a standard cron-spec. Updates resume to skip RunOnce schedules that are in the past. For golang/go#54476 Change-Id: I30f5bb45353a88ca9398b8787ee7ea44ae96d7e1 Reviewed-on: https://go-review.googlesource.com/c/build/+/432397 Auto-Submit: Jenny Rakoczy <jenny@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Run-TryBot: Jenny Rakoczy <jenny@golang.org>
Add a small table to show scheduled workflows, including the last and next time they will run. For golang/go#54476 Change-Id: I82a7e34f58ff77eb59df330f52564aff6b6c581f Reviewed-on: https://go-review.googlesource.com/c/build/+/432404 Run-TryBot: Jenny Rakoczy <jenny@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Jenny Rakoczy <jenny@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
Add a button to permanently delete a workflow schedule. For golang/go#54476 Change-Id: I14d5ba66e7ce609dfea97af9ecd2aa6173d03524 Reviewed-on: https://go-review.googlesource.com/c/build/+/432405 Run-TryBot: Jenny Rakoczy <jenny@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Auto-Submit: Jenny Rakoczy <jenny@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Change https://go.dev/cl/436155 mentions this issue: |
This removes the approval step from dry-run releases. There's no need to approve test failures in this scenario, and we should just fail the workflow. For golang/go#54476 Change-Id: I468a0bda42b4d5b6a57d7da79c448d76383c648f Reviewed-on: https://go-review.googlesource.com/c/build/+/436155 Run-TryBot: Jenny Rakoczy <jenny@golang.org> Auto-Submit: Jenny Rakoczy <jenny@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Change https://go.dev/cl/444695 mentions this issue: |
The user who scheduled a workflow may not be closely watching at the time of failure. This adds functionality to send an email if a scheduled workflow cannot progress. The current implementation logs on stall, but it's trivial to configure to email as some tasks do. For golang/go#54476 Change-Id: Id0deefd3c1b07f569585600a583ba4e04f8f7be1 Reviewed-on: https://go-review.googlesource.com/c/build/+/444695 Run-TryBot: Jenny Rakoczy <jenny@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
Change https://go.dev/cl/451296 mentions this issue: |
Remaining work:
|
There are at least several different use-cases where we'd like to be able to schedule workflows in advance. Relui should be able to keep track of these and start workflows as appropriate.
I've written out each use-case below, but a crontab time format is probably sufficient.
Once
Will run the job at the specified date and time.
This is useful for scheduling major and minor releases in advance.
Interval
Runs a job every interval as specified.
This would handle nightly releases, or other automated tasks that we do regularly, like tagging repos or updating dependencies.
Date-based
Runs a job every nth day of week or month.
This may be useful for updating buildlet images and binaries.
The text was updated successfully, but these errors were encountered: