mirror of
https://github.com/hanzoai/visor.git
synced 2026-09-24 17:04:14 +00:00
A release tag was created before the release built, so a failed build left a
tag on GitHub with nothing behind it. release-20260824.0 is an example: the
build failed, but users still see a release that they cannot install.
Before
```
make tag RELEASE_COMMIT=<sha> RELEASE_NAME=20260831.0 RELEASE_NOTES=<file>
│
tag_release.sh └─ pushes the annotated tag as release-20260831.0 ← published immediately
│
┌────────────┴────────────┐
│ │
Buildkite GitHub Actions
(triggered by the tag) release_mirror.yml
├─ make artifacts ├─ poll GCS for artifacts (240 min timeout)
├─ make release ├─ verify sha512
└─ gcloud storage cp └─ create the GitHub Release
→ gs://gvisor/releases/
```
After
```
make tag RELEASE_COMMIT=<sha> RELEASE_NAME=20260831.0 RELEASE_NOTES=<file>
│
tag_release.sh └─ pushes the annotated tag as staging-release-20260831.0
│
Buildkite ├─ tag.sh stage restore release-20260831.0 locally (version stamping)
(triggered by ├─ make artifacts x86_64 + aarch64
the staging tag) ├─ make release sign, lay out repo/
├─ gcloud storage cp → gs://gvisor/releases/
└─ tag.sh publish push release-20260831.0, delete staging tag
│
GitHub Actions └─ release_mirror.yml verify sha512, create the GitHub Release
```
111 lines
3.4 KiB
YAML
111 lines
3.4 KiB
YAML
agents:
|
|
queue: release
|
|
_templates:
|
|
retry_settings: &retry_settings
|
|
automatic:
|
|
- exit_status: -1
|
|
limit: 10
|
|
- exit_status: "*"
|
|
limit: 2
|
|
common: &common
|
|
timeout_in_minutes: 180
|
|
retry:
|
|
<<: *retry_settings
|
|
notify:
|
|
- email: "[email protected]"
|
|
if: build.state == "failed"
|
|
|
|
env:
|
|
# Force a clean checkout every time to avoid reuse of files between runs.
|
|
BUILDKITE_CLEAN_CHECKOUT: true
|
|
|
|
steps:
|
|
- <<: *common
|
|
label: ":ship: Push all images (x86_64)"
|
|
if: build.branch == "master" && build.tag == null
|
|
commands:
|
|
- make ARCH=x86_64 DOCKER_PUSH_AS_LATEST=true push-all-images
|
|
- make ARCH=x86_64 REMOTE_IMAGE_PREFIX=gcr.io/gvisor-presubmit DOCKER_PUSH_AS_LATEST=true push-all-images
|
|
agents:
|
|
arch: "amd64"
|
|
queue: "release"
|
|
- <<: *common
|
|
label: ":ship: Push all images (aarch64)"
|
|
if: build.branch == "master" && build.tag == null
|
|
commands:
|
|
- make ARCH=aarch64 DOCKER_PUSH_AS_LATEST=true push-all-images
|
|
- make ARCH=aarch64 REMOTE_IMAGE_PREFIX=gcr.io/gvisor-presubmit DOCKER_PUSH_AS_LATEST=true push-all-images
|
|
agents:
|
|
arch: "arm64"
|
|
queue: "release-arm64"
|
|
- <<: *common
|
|
label: ":slot_machine: Syzkaller smoke test"
|
|
if: build.branch == "master" && build.tag == null
|
|
commands:
|
|
- make syzkaller-smoke-test
|
|
agents:
|
|
arch: "amd64"
|
|
queue: "release"
|
|
- <<: *common
|
|
label: ":ship: Release"
|
|
if: build.branch == "master" || build.tag != null
|
|
commands:
|
|
# Stamps the binaries below with release-<name>.
|
|
- ./.buildkite/scripts/release/tag.sh stage
|
|
- "make BAZEL_OPTIONS='--config=x86_64 --compilation_mode=opt' artifacts/x86_64"
|
|
- "make BAZEL_OPTIONS='--config=aarch64 --compilation_mode=opt' artifacts/aarch64"
|
|
- make artifacts-python
|
|
- make release RELEASE_NIGHTLY=$$RELEASE_NIGHTLY
|
|
- (cd repo && gcloud storage cp --recursive . gs://gvisor/releases/)
|
|
# Pushes release-<name> to GitHub.
|
|
- ./.buildkite/scripts/release/tag.sh publish
|
|
agents:
|
|
queue: "release"
|
|
- <<: *common
|
|
label: ":ship: Website Deploy"
|
|
if: build.branch == "master" && build.tag == null
|
|
commands:
|
|
# The built website image must be x86_64.
|
|
- make BAZEL_OPTIONS=--config=x86_64 website-deploy
|
|
agents:
|
|
arch: "amd64"
|
|
queue: "release"
|
|
- <<: *common
|
|
label: ":bun: COS Latest Driver Compatibility Test"
|
|
commands:
|
|
- tools/gpu/cos_drivers_test.sh
|
|
agents:
|
|
queue: "release-cos"
|
|
- <<: *common
|
|
label: ":female_supervillain: COS GPU Tests"
|
|
commands:
|
|
- make cos-gpu-all-tests
|
|
agents:
|
|
queue: "release-cos-canary-gpu"
|
|
- <<: *common
|
|
label: ":screwdriver: GPU Tests"
|
|
commands:
|
|
- make sudo TARGETS=//tools/gpu:main ARGS="install --latest"
|
|
- make gpu-all-tests
|
|
agents:
|
|
queue: "release-ubuntu-gpu"
|
|
- label: ":batfish: CUDA 12.8 tests"
|
|
# This is its own test rather than being part of the GPU tests,
|
|
# because it takes around 30 minutes to run.
|
|
parallelism: 16
|
|
timeout_in_minutes: 60
|
|
retry:
|
|
<<: *retry_settings
|
|
commands:
|
|
- make sudo TARGETS=//tools/gpu:main ARGS="install --latest"
|
|
- make cuda-12-8-tests
|
|
agents:
|
|
queue: "release-ubuntu-gpu"
|
|
- <<: *common
|
|
label: ":screwdriver: All GPU Drivers Test"
|
|
parallelism: 8
|
|
commands:
|
|
- tools/gpu/all_drivers_test.sh
|
|
agents:
|
|
queue: "release-ubuntu-gpu"
|