Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
385baac
feat: add read-only release state and PR title lint
chandrasekharan-zipstack Oct 26, 2026
b436f0a
feat: add Backport and Release branch CI; latest stable tag only in r…
chandrasekharan-zipstack Oct 27, 2026
96fd33a
fix: sync .github/release with the enterprise repo's copy
chandrasekharan-zipstack Oct 27, 2026
4910d26
chore: leave the release-branch-ci failure alert as a TODO
chandrasekharan-zipstack Oct 27, 2026
2a45413
fix: tighten the release workflows after self-review round 1
chandrasekharan-zipstack Oct 27, 2026
b1b22fb
fix: take the release tooling's final round of fixes; pass the App sl…
chandrasekharan-zipstack Oct 27, 2026
3385720
fix: name the trailer job in the header and say a failed check failed
chandrasekharan-zipstack Oct 27, 2026
72d0eb2
fix: take the release tooling's round-2 fixes; pass the App slug to pick
chandrasekharan-zipstack Oct 27, 2026
3703de4
docs: say main's record script must accept every release line's job env
chandrasekharan-zipstack Oct 27, 2026
50ce92c
fix: take the release tooling's round-3 fixes
chandrasekharan-zipstack Oct 27, 2026
208616c
ci: skip Lint PR for fork PRs; run the release test suites on PRs
chandrasekharan-zipstack Oct 27, 2026
da87df3
fix: take the release tooling's round-4 fixes
chandrasekharan-zipstack Oct 27, 2026
3a552c4
docs: say Lint PR's fork skip also drops the label rules, and the rec…
chandrasekharan-zipstack Oct 27, 2026
ea3b994
fix: take the release tooling's round-5 fixes
chandrasekharan-zipstack Oct 27, 2026
3aedb82
docs: drop Lint PR's claim that Backport flags a bad fork title
chandrasekharan-zipstack Oct 27, 2026
e8f6fc9
fix: take the release tooling's round-6 fixes
chandrasekharan-zipstack Oct 27, 2026
39646d3
fix: record a close with no pick, and say so in Backport's header
chandrasekharan-zipstack Oct 27, 2026
360767f
fix: delete a no-pick head only while it is still the PR's commit
chandrasekharan-zipstack Oct 27, 2026
06442fc
fix: leave a no-pick head for a person to delete
chandrasekharan-zipstack Oct 27, 2026
5d62757
fix: say how to recover a kept no-pick head
chandrasekharan-zipstack Oct 27, 2026
adfcbd9
feat: lint PR titles and labels on fork PRs too
chandrasekharan-zipstack Oct 27, 2026
4c1e86d
fix: read a chart push tagged without a v
chandrasekharan-zipstack Oct 27, 2026
869fbf1
feat: mark a stabilized OSS line with stabilized/X.Y
chandrasekharan-zipstack Oct 28, 2026
7fce0fe
feat: delete stabilized/X.Y when the paired cloud line reopens
chandrasekharan-zipstack Oct 28, 2026
c665ac0
test: cover the Retire lease in the OSS workflow harness
chandrasekharan-zipstack Oct 28, 2026
bf3fa08
fix: treat a short-sha decline and a full-sha pick as one original
chandrasekharan-zipstack Oct 28, 2026
f675963
fix: reopen on the ticked targets, not only the ones this run builds
chandrasekharan-zipstack Oct 28, 2026
8f6ac8d
fix: sync the release tooling and add the release-branch-only workflow
chandrasekharan-zipstack Oct 29, 2026
3dc442c
test: keep one call inside the symlink refusal check
chandrasekharan-zipstack Oct 29, 2026
f12defb
fix: drop an unused token from the state workflow
chandrasekharan-zipstack Oct 29, 2026
ba9e8ac
fix: pass workflow inputs to the release CLIs as --flag=value
chandrasekharan-zipstack Oct 29, 2026
913d154
fix: skip Greptile review on the release bot's PRs
chandrasekharan-zipstack Oct 29, 2026
7f1e72e
Read an optional RC repository in the release state tooling
chandrasekharan-zipstack Oct 29, 2026
336f440
Prefix the new release workflows' display names with V2
chandrasekharan-zipstack Oct 29, 2026
44f5401
Pass LD_LIBRARY_PATH to the workflow-step tests
chandrasekharan-zipstack Oct 29, 2026
fecbff8
Test the build workflows' skip of an already pushed RC
chandrasekharan-zipstack Oct 29, 2026
cbb4ed4
Test the revision check of the build workflows' skip step
chandrasekharan-zipstack Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,076 changes: 1,076 additions & 0 deletions .github/release/backport.py

Large diffs are not rendered by default.

434 changes: 434 additions & 0 deletions .github/release/backport_merge.py

Large diffs are not rendered by default.

606 changes: 606 additions & 0 deletions .github/release/convgate.py

Large diffs are not rendered by default.

433 changes: 433 additions & 0 deletions .github/release/oss.py

Large diffs are not rendered by default.

708 changes: 708 additions & 0 deletions .github/release/relmgr.py

Large diffs are not rendered by default.

764 changes: 764 additions & 0 deletions .github/release/relstate.py

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .github/release/ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# The repo's ruff settings, plus the release tooling's own style: short local lambdas, `l` for a label, and tests
# that set GITHUB_REPOSITORY before importing relstate.
extend = "../../pyproject.toml"

[lint.extend-per-file-ignores]
"*.py" = ["E731", "E741"]
"test_*.py" = ["E402"]
1,159 changes: 1,159 additions & 0 deletions .github/release/test_backport.py

Large diffs are not rendered by default.

500 changes: 500 additions & 0 deletions .github/release/test_backport_merge.py

Large diffs are not rendered by default.

992 changes: 992 additions & 0 deletions .github/release/test_convgate.py

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions .github/release/test_links.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import os
import unittest
from unittest import mock

import relmgr as rm

ACTIONS = {
"GITHUB_SERVER_URL": "https://github.com",
"GITHUB_REPOSITORY": "Zipstack/example",
"RELSTATE_AR_ON_PREM": "projects/p/locations/l/repositories/r",
}
WEB = "https://github.com/Zipstack/example"
SHA = "6635951" + "0" * 33


class Links(unittest.TestCase):
def test_actions(self):
with mock.patch.dict(os.environ, ACTIONS):
self.assertEqual(rm.pr_link(246), f"[#246]({WEB}/pull/246)")
self.assertEqual(rm.commit_link(SHA), f"[`6635951`]({WEB}/commit/{SHA})")
self.assertEqual(
rm.tag_link("v0.192.0-rc.1"),
f"[`v0.192.0-rc.1`]({WEB}/releases/tag/v0.192.0-rc.1)",
)
self.assertEqual(
rm.image_link("on-prem", "v0.192.0-rc.1"),
"[`on-prem:v0.192.0-rc.1`](https://console.cloud.google.com/artifacts/docker/p/l/r)",
)

def test_plain_outside_actions(self):
with mock.patch.dict(os.environ, clear=True):
self.assertEqual(rm.pr_link(246), "#246")
self.assertEqual(rm.commit_link(SHA), "`6635951`")
self.assertEqual(rm.tag_link("v0.192.0-rc.1"), "`v0.192.0-rc.1`")
self.assertEqual(
rm.image_link("cloud", "v0.192.0-rc.1"), "`cloud:v0.192.0-rc.1`"
)


if __name__ == "__main__":
unittest.main()
Loading
Loading