Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
fc5e119
Started merging service binaries
jclapis Jan 20, 2026
5036b7c
Started refactoring handle_docker_init()
jclapis Jan 27, 2026
f57d41b
More refactoring of handle_docker_init
jclapis Feb 2, 2026
4d75ddc
Fixed some tests
jclapis Feb 2, 2026
f7e06ba
Merge branch 'main' into unified-binary
jclapis Feb 2, 2026
19d0efe
Reverted to multiple Docker images, merged CLI binary into CB
jclapis Feb 3, 2026
7dec4d3
Updated justfile
jclapis Feb 3, 2026
206658b
Updated release workflow
jclapis Feb 3, 2026
c2ff756
Updated docs for unified binary
jclapis Feb 3, 2026
a62086f
Clippy fix
jclapis Feb 3, 2026
db9f8a8
Merge branch 'main' into unified-binary
jclapis Mar 2, 2026
6baf1b8
Merge branch 'main' into unified-binary
jclapis Mar 2, 2026
67514fe
Added integration tests to ensure the CLI commands work
jclapis Mar 3, 2026
e21fceb
one-click kurtosis support
JasonVranek Mar 6, 2026
166a830
More doc changes to use new binary
JasonVranek Mar 9, 2026
0fa7964
Remove panic!() and unwrap() from docker_init.rs and improve test
JasonVranek Mar 9, 2026
957d394
Add cmds for test coverage + regroup kurtosis commands for easier
JasonVranek Mar 10, 2026
12afa7d
Merge remote-tracking branch 'upstream/main' into unified-binary
JasonVranek Mar 11, 2026
87ab03e
Add criterion microbenchmark test for get_header with Justfile cmds
JasonVranek Mar 11, 2026
e4a79a1
Add binary signing to GitHub releases (#433)
jclapis Mar 12, 2026
145e184
Fix for code scanning alert no. 21: Code injection
JasonVranek Mar 12, 2026
7035d41
prevent cmd injection and pin sigstore version
JasonVranek Mar 12, 2026
2ff0a87
fmt code
JasonVranek Mar 12, 2026
31b5c09
CI to push release instead of draft to adhere to branch rules
JasonVranek Mar 13, 2026
1fd6bed
draft releases are removed from pipeline, so edit instructions
JasonVranek Mar 16, 2026
c5582a4
Address review comments
JasonVranek Mar 16, 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
96 changes: 96 additions & 0 deletions .github/workflows/release-gate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Release Gate

on:
pull_request:
types: [closed]
branches: [main]

jobs:
release-gate:
name: Tag and update release branches
runs-on: ubuntu-latest
# Only run when a release/ branch is merged (not just closed)
if: |
github.event.pull_request.merged == true &&
startsWith(github.event.pull_request.head.ref, 'release/v')

permissions:
contents: write

steps:
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}

- uses: actions/checkout@v4
with:
# Full history required for version comparison against existing tags
# and for the fast-forward push to stable/beta.
fetch-depth: 0
token: ${{ steps.app-token.outputs.token }}

- name: Extract and validate version
id: version
env:
BRANCH_REF: ${{ github.event.pull_request.head.ref }}
run: |
BRANCH="$BRANCH_REF"
NEW_VERSION="${BRANCH#release/}"
echo "new=${NEW_VERSION}" >> $GITHUB_OUTPUT

# Determine if this is an RC
if echo "$NEW_VERSION" | grep -qE '\-rc[0-9]+$'; then
echo "is_rc=true" >> $GITHUB_OUTPUT
else
echo "is_rc=false" >> $GITHUB_OUTPUT
fi

- name: Validate version is strictly increasing
env:
NEW_VERSION: ${{ steps.version.outputs.new }}
run: |
# Get the latest tag; if none exist yet, skip the comparison
LATEST_TAG=$(git tag --list 'v*' --sort=-version:refname | head -n1)
if [ -z "$LATEST_TAG" ]; then
echo "No existing tags found — skipping version comparison"
exit 0
fi

LATEST_VERSION="${LATEST_TAG#v}"

python3 - <<EOF
import sys
from packaging.version import Version

def normalize(v):
# Convert vX.Y.Z-rcQ → X.Y.ZrcQ (PEP 440)
return v.replace("-rc", "rc")

new = Version(normalize("$NEW_VERSION"))
latest = Version(normalize("$LATEST_VERSION"))

print(f"Latest tag : {latest}")
print(f"New version: {new}")

if new <= latest:
print(f"\n❌ {new} is not strictly greater than current {latest}")
sys.exit(1)

print(f"\n✅ Version order is valid")
EOF

- name: Configure git
run: |
git config user.name "commit-boost-release-bot[bot]"
git config user.email "commit-boost-release-bot[bot]@users.noreply.github.com"

- name: Create and push tag
env:
VERSION: ${{ steps.version.outputs.new }}
run: |
git tag "$VERSION" HEAD
git push origin "$VERSION"
# Branch fast-forwarding happens in release.yml after all artifacts
# are successfully built. stable/beta are never touched if the build fails.
Loading
Loading