with one click
update-lambda
// Trigger a new lambda release, update build.rs with the new artifact URL and SHA256, and open a PR
// Trigger a new lambda release, update build.rs with the new artifact URL and SHA256, and open a PR
| name | update-lambda |
| description | Trigger a new lambda release, update build.rs with the new artifact URL and SHA256, and open a PR |
| disable-model-invocation | true |
This skill triggers the Release Lambda binary GitHub Actions workflow by pushing a
lambda-<commit> tag, waits for the artifact to be published, then updates
quickwit-lambda-client/build.rs with the new URL and SHA256 hash, and opens a PR.
Run: git branch --show-current
If not on main, abort and ask the user to switch branches first.
Run: git pull origin main
This ensures the lambda tag points to the latest code.
Run: git rev-parse --short HEAD
Save this as COMMIT_HASH (e.g. dd6442e). The tag that will be pushed is
lambda-{COMMIT_HASH}.
Run:
git tag --list "lambda-{COMMIT_HASH}"
If the tag already exists locally or on the remote, skip straight to Step 6 to check whether the corresponding release already exists. Do not push a duplicate tag.
git tag lambda-{COMMIT_HASH}
git push origin lambda-{COMMIT_HASH}
This triggers the Release Lambda binary GitHub Actions workflow
(.github/workflows/publish_lambda.yaml).
After pushing, wait ~10 seconds for GitHub to register the workflow run before polling.
Poll the workflow runs until the one for this tag completes:
gh run list --repo quickwit-oss/quickwit \
--workflow=publish_lambda.yaml \
--limit 10 \
--json headBranch,status,conclusion,databaseId,url
Look for the run where headBranch equals lambda-{COMMIT_HASH}.
status is completed and conclusion is success: proceed to Step 7.status is completed and conclusion is not success: abort and report
the failure URL to the user.status is still in-progress: wait 30 seconds and
retry. The build typically takes 15–20 minutes.Once the workflow succeeds:
gh release view lambda-{COMMIT_HASH} \
--repo quickwit-oss/quickwit \
--json assets,isDraft
From the first element of assets, extract:
url: the download URLdigest: the SHA256 in sha256:<hex> format — strip the sha256: prefix to get
the bare hex string.Abort if the release has no assets or is not found.
The release is created as a draft by the workflow. Make it publicly accessible so
build.rs can download the artifact:
gh release edit lambda-{COMMIT_HASH} \
--repo quickwit-oss/quickwit \
--draft=false
Edit quickwit/quickwit-lambda-client/build.rs and update the two constants:
const LAMBDA_ZIP_URL: &str = "<new URL from Step 7>";
const LAMBDA_ZIP_SHA256: &str = "<bare SHA256 hex from Step 7>";
These are the only two lines that should change.
Get the git username: git config user.name | tr ' ' '-' | tr '[:upper:]' '[:lower:]'
Create and checkout a new branch:
git checkout -b {username}/update-lambda-{COMMIT_HASH}
Stage the modified file and commit:
git add quickwit/quickwit-lambda-client/build.rs
git commit -m "Update lambda artifact to {COMMIT_HASH}"
git push origin {username}/update-lambda-{COMMIT_HASH}
gh pr create \
--repo quickwit-oss/quickwit \
--title "Update lambda artifact to {COMMIT_HASH}" \
--body "$(cat <<'EOF'
Updates `quickwit-lambda-client/build.rs` to point to the new lambda artifact
built from commit {COMMIT_HASH}.
- Release: https://github.com/quickwit-oss/quickwit/releases/tag/lambda-{COMMIT_HASH}
EOF
)"
Report the PR URL to the user.
Create a simple PR from staged changes with an auto-generated commit message
Run `make fmt` to check the code format.
Fix all clippy lint warnings in the project
Analyze Cargo.toml dependencies and attempt to remove unused features to reduce compile times and binary size
Bump tantivy to the latest commit on main branch, fix compilation issues, and open a PR