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
Update Lambda Artifact
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.
Step 1: Verify we are on main
Run: git branch --show-current
If not on main, abort and ask the user to switch branches first.
Step 2: Pull latest main
Run: git pull origin main
This ensures the lambda tag points to the latest code.
Step 3: Get the commit short hash
Run: git rev-parse --short HEAD
Save this as COMMIT_HASH (e.g. dd6442e). The tag that will be pushed is
lambda-{COMMIT_HASH}.
Step 4: Check the tag does not already exist
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.
Step 5: Push the tag to trigger the workflow
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.
Step 6: Wait for the workflow run to complete
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}.
- If
statusiscompletedandconclusionissuccess: proceed to Step 7. - If
statusiscompletedandconclusionis notsuccess: abort and report the failure URL to the user. - If no matching run is found or
statusis still in-progress: wait 30 seconds and retry. The build typically takes 15–20 minutes.
Step 7: Fetch the draft release asset info
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 insha256:<hex>format — strip thesha256:prefix to get the bare hex string.
Abort if the release has no assets or is not found.
Step 8: Publish the draft release
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
Step 9: Update build.rs
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.
Step 10: Create a working branch
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}
Step 11: Commit the changes
Stage the modified file and commit:
git add quickwit/quickwit-lambda-client/build.rs
git commit -m "Update lambda artifact to {COMMIT_HASH}"
Step 12: Push and open a PR
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.