Skip to content

fix(ci): rust release nits#7339

Merged
paulbalaji merged 2 commits intomainfrom
pb/force-trigger-release-artifacts
Nov 6, 2025
Merged

fix(ci): rust release nits#7339
paulbalaji merged 2 commits intomainfrom
pb/force-trigger-release-artifacts

Conversation

@paulbalaji
Copy link
Collaborator

@paulbalaji paulbalaji commented Nov 6, 2025

Description

fix(ci): rust release nits

  • simplify agent release artifact tagging
  • manually trigger agent release + docker build with the new tag
  • don't try to create a release PR when we're about to release from the current commit

Drive-by changes

  • add timeouts to common jobs that could sometimes hang

Related issues

Backward compatibility

Testing

Summary by CodeRabbit

  • Chores

    • Simplified artifact naming for releases and unified tag handling.
    • Added validation gates so release workflows run only for agent version tags.
    • Release flow now explicitly triggers dependent artifact and Docker build workflows.
    • Improved release messaging to reflect automated builds.
    • Added job timeouts to several CI/release jobs.
  • Tests

    • Adjusted end-to-end workflow condition to streamline trigger behavior.

@changeset-bot
Copy link

changeset-bot bot commented Nov 6, 2025

⚠️ No Changeset found

Latest commit: b7d4d99

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 6, 2025

📝 Walkthrough

Walkthrough

Workflow triggers and tag handling were simplified: computed TAG_DATE/TAG_SHA removed in favor of using github.ref_name; prepare job in agent-release-artifacts now only runs for refs starting with agents-v; rust-release now dispatches dependent workflows and some job timeouts were added across test workflows.

Changes

Cohort / File(s) Summary
Agent release artifacts workflow
​.github/workflows/agent-release-artifacts.yml
Removed automatic release event trigger; added if: startsWith(github.ref_name, 'agents-v') on prepare job; replaced generated TAG_DATE/TAG_SHA outputs with single tag_name: ${{ github.ref_name }} output; updated artifact names and references to use tag_name; added timeout-minutes: 30 to build job.
Rust release orchestration
​.github/workflows/rust-release.yml
Added should_release == false requirement to a release-pr gate; after publish, explicitly dispatches agent-release-artifacts.yml and rust-docker.yml (with include_arm64=true) for the new tag and emits fallback warnings on failure; updated step summaries to mention the external workflows.
Test workflows / timeouts
​.github/workflows/test.yml
Added timeout-minutes across multiple jobs (values: 10, 20, 30); adjusted e2e-matrix trigger condition (removed base_ref check against cli-2.0); preserved existing steps otherwise.

Sequence Diagram(s)

sequenceDiagram
    participant User as User
    participant RustRel as rust-release
    participant AgentRel as agent-release-artifacts
    participant RustDocker as rust-docker

    User->>RustRel: dispatch release
    activate RustRel
    RustRel->>RustRel: evaluate gates (has_changes, should_release)
    alt gates pass
        RustRel->>RustRel: publish release
        RustRel->>AgentRel: workflow_dispatch (tag_name)
        RustRel->>RustDocker: workflow_dispatch (tag_name, include_arm64=true)
        activate AgentRel
        AgentRel->>AgentRel: prepare (if startsWith agents-v) -> build artifacts
        deactivate AgentRel
        activate RustDocker
        RustDocker->>RustDocker: build docker images
        deactivate RustDocker
    else gates fail
        RustRel->>RustRel: skip downstream dispatch
    end
    deactivate RustRel
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review points:
    • agent-release-artifacts.yml prepare-job condition and outputs (ensure no dependent steps expect removed TAG_*).
    • Dispatch payloads and failure handling in rust-release.yml.
    • Cross-check timeouts and e2e trigger condition in test.yml for CI behavior.

Possibly related PRs

  • feat: agents release workflow #7194 — previously introduced SEMVER/TAG_SHA/TAG_DATE tag metadata logic that this change simplifies by switching to github.ref_name and removing generated tag outputs.

Suggested reviewers

  • kamiyaa
  • xeno097
  • Mo-Hussain
  • yjamin

Poem

Ogre nods to tidy flows, no fuss, no fray,
Tags now speak straight — no dance, no ballet.
Workflows wake when the proper name sings,
Dispatches roll out, builds take wings.
A simpler swamp, fewer tangled things. 🐸✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(ci): rust release nits' directly addresses the main changes in the PR: simplifying CI/release workflows and fixing release process issues.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pb/force-trigger-release-artifacts

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0f1348c and b7d4d99.

📒 Files selected for processing (2)
  • .github/workflows/agent-release-artifacts.yml (2 hunks)
  • .github/workflows/test.yml (6 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: paulbalaji
Repo: hyperlane-xyz/hyperlane-monorepo PR: 6943
File: rust/main/config/mainnet_config.json:965-965
Timestamp: 2025-08-26T13:46:37.695Z
Learning: In the repository hyperlane-xyz/hyperlane-monorepo, skip reviewing the file rust/main/config/testnet_config.json in future code reviews as requested by paulbalaji.
Learnt from: paulbalaji
Repo: hyperlane-xyz/hyperlane-monorepo PR: 6943
File: rust/main/config/mainnet_config.json:965-965
Timestamp: 2025-08-26T13:46:37.695Z
Learning: In the repository hyperlane-xyz/hyperlane-monorepo, skip reviewing the file rust/main/config/mainnet_config.json in future code reviews as requested by paulbalaji.
Learnt from: CR
Repo: hyperlane-xyz/hyperlane-monorepo PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-02T18:44:06.598Z
Learning: Applies to rust/main/agents/relayer/**/src/**/*.rs : Maintain relayer agent Rust sources under rust/main/agents/relayer
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (58)
  • GitHub Check: cli-evm-e2e-matrix (warp-send)
  • GitHub Check: cli-evm-e2e-matrix (warp-init)
  • GitHub Check: cli-evm-e2e-matrix (warp-rebalancer)
  • GitHub Check: cli-evm-e2e-matrix (warp-bridge-2)
  • GitHub Check: cli-evm-e2e-matrix (warp-deploy-2)
  • GitHub Check: cli-evm-e2e-matrix (warp-check-5)
  • GitHub Check: cli-evm-e2e-matrix (warp-extend-config)
  • GitHub Check: cli-evm-e2e-matrix (warp-read)
  • GitHub Check: cli-evm-e2e-matrix (warp-extend-recovery)
  • GitHub Check: cli-evm-e2e-matrix (warp-apply-2)
  • GitHub Check: cli-evm-e2e-matrix (warp-check-3)
  • GitHub Check: cli-evm-e2e-matrix (warp-extend-basic)
  • GitHub Check: cli-evm-e2e-matrix (warp-check-2)
  • GitHub Check: cli-evm-e2e-matrix (warp-apply-submitters)
  • GitHub Check: cli-evm-e2e-matrix (warp-check-4)
  • GitHub Check: cli-evm-e2e-matrix (warp-deploy-1)
  • GitHub Check: cli-evm-e2e-matrix (warp-check-1)
  • GitHub Check: cli-evm-e2e-matrix (core-check)
  • GitHub Check: env-test-matrix (mainnet3, inevm, igp)
  • GitHub Check: cli-evm-e2e-matrix (warp-bridge-1)
  • GitHub Check: cli-evm-e2e-matrix (core-read)
  • GitHub Check: cli-evm-e2e-matrix (warp-apply-1)
  • GitHub Check: cli-evm-e2e-matrix (warp-apply-ism-updates)
  • GitHub Check: cli-evm-e2e-matrix (core-deploy)
  • GitHub Check: cli-evm-e2e-matrix (relay)
  • GitHub Check: env-test-matrix (testnet4, sepolia, core)
  • GitHub Check: env-test-matrix (mainnet3, ethereum, igp)
  • GitHub Check: env-test-matrix (mainnet3, inevm, core)
  • GitHub Check: cli-evm-e2e-matrix (core-apply)
  • GitHub Check: cli-evm-e2e-matrix (core-init)
  • GitHub Check: env-test-matrix (mainnet3, optimism, igp)
  • GitHub Check: cli-cosmos-e2e-matrix (warp-read)
  • GitHub Check: env-test-matrix (mainnet3, arbitrum, igp)
  • GitHub Check: env-test-matrix (mainnet3, ethereum, core)
  • GitHub Check: env-test-matrix (mainnet3, optimism, core)
  • GitHub Check: cli-cosmos-e2e-matrix (core-check)
  • GitHub Check: env-test-matrix (mainnet3, arbitrum, core)
  • GitHub Check: cli-cosmos-e2e-matrix (warp-deploy)
  • GitHub Check: cli-cross-chain-e2e-matrix (warp-deploy)
  • GitHub Check: cli-cross-chain-e2e-matrix (warp-apply)
  • GitHub Check: cli-radix-e2e-matrix (core-deploy)
  • GitHub Check: cli-cosmos-e2e-matrix (core-read)
  • GitHub Check: cosmos-sdk-e2e-run
  • GitHub Check: cli-cosmos-e2e-matrix (core-deploy)
  • GitHub Check: cli-cosmos-e2e-matrix (core-apply)
  • GitHub Check: yarn-test-run
  • GitHub Check: cli-install-test-run
  • GitHub Check: e2e-matrix (starknet)
  • GitHub Check: e2e-matrix (sealevel)
  • GitHub Check: e2e-matrix (radix)
  • GitHub Check: e2e-matrix (evm)
  • GitHub Check: e2e-matrix (cosmwasm)
  • GitHub Check: e2e-matrix (cosmosnative)
  • GitHub Check: agent-configs (testnet4)
  • GitHub Check: yarn-install
  • GitHub Check: lint-rs
  • GitHub Check: lander-coverage
  • GitHub Check: test-rs
🔇 Additional comments (5)
.github/workflows/test.yml (2)

152-152: Timeouts give these e2e jobs some structure—like layers, they've got bounds now.

Adding timeout-minutes across the CLI e2e matrix jobs and e2e-matrix itself is sensible. These tests can go on a bit, and having an upper bound means they won't hang forever if something gets stuck. The 10- and 20-minute limits for the CLI tests feel right for isolated tasks, and 30 minutes for the full e2e-matrix is reasonable given it's running agent tests across multiple blockchain types.

Also applies to: 271-271, 332-332, 372-372, 403-403, 468-468, 527-527


526-526: The e2e-matrix condition got simpler—now runs on all PRs, not just those targeting main.

The old condition gated e2e-matrix to only run on PRs with base_ref == 'main'. The new one removes that check, so it'll run on all pull requests to any branch, not just main. This means broader test coverage, which is good for catching issues early. Just want to make sure this intentional change won't cause unexpected CI load or cost increases.

Can you confirm this broader e2e-matrix triggering (now for all PRs, not just PRs targeting main) is the desired behavior? If there's resource/billing sensitivity here, we may want to document or reconsider.

.github/workflows/agent-release-artifacts.yml (3)

18-19: Good gating: prepare job now only runs for agents-v tags.*

The if: startsWith(github.ref_name, 'agents-v') condition keeps this workflow from running on every ref. Since artifact building is expensive, limiting it to agent release tags (like agents-v1.2.3) is the right move.


21-21: Tag handling got simplified—now just using github.ref_name directly.

Instead of computing TAG_DATE and TAG_SHA, you're now working with a single tag_name output that's just github.ref_name. This is much cleaner. The artifact naming at line 77 now uses needs.prepare.outputs.tag_name, which flows nicely from the prepare job's output.

The approach is solid, but I'll need to make sure downstream workflows (like rust-release.yml, if it calls this one) are updated to use the new tag_name output instead of looking for the old tag_date and tag_sha.

Please verify that any workflows consuming this workflow's outputs (especially rust-release.yml) have been updated to reference needs.agent-release-artifacts.outputs.tag_name rather than the old tag_date and tag_sha. Without seeing those files, I want to make sure there are no dangling references.

Also applies to: 77-77


24-24: Build job now has a 30-minute timeout—keeps runaway builds from spiraling.

Warning

Tools execution failed with the following error:

Failed to run tools: 13 INTERNAL: Received RST_STREAM with code 2 (Internal server error)


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@paulbalaji paulbalaji added this pull request to the merge queue Nov 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 6, 2025
@paulbalaji paulbalaji added this pull request to the merge queue Nov 6, 2025
Merged via the queue into main with commit b872a03 Nov 6, 2025
80 checks passed
@paulbalaji paulbalaji deleted the pb/force-trigger-release-artifacts branch November 6, 2025 20:05
@github-project-automation github-project-automation bot moved this from In Review to Done in Hyperlane Tasks Nov 6, 2025
@codecov
Copy link

codecov bot commented Nov 6, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (b5f7fa1) to head (b7d4d99).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff      @@
##   main   #7339   +/-   ##
============================
============================
Components Coverage Δ
core ∅ <ø> (∅)
hooks ∅ <ø> (∅)
isms ∅ <ø> (∅)
token ∅ <ø> (∅)
middlewares ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants