From 3fd63c3713e3cafe479dcc2db28e83abfa31c1dc Mon Sep 17 00:00:00 2001 From: pbio <10051819+paulbalaji@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:46:10 +0000 Subject: [PATCH 1/3] ci: extract CLI install test to reusable workflow, run Windows nightly Extract the cross-platform CLI install test to a reusable workflow (cli-install-test.yml) that can be called with or without Windows. - Release workflow: calls without Windows (~3 min vs ~13 min) - Nightly (6am UTC): runs full matrix including Windows - Manual dispatch: can choose to include Windows Co-Authored-By: Claude Opus 4.5 --- .github/workflows/cli-install-test.yml | 42 ++++++++++++++++++++++++++ .github/workflows/release.yml | 29 +++--------------- 2 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/cli-install-test.yml diff --git a/.github/workflows/cli-install-test.yml b/.github/workflows/cli-install-test.yml new file mode 100644 index 00000000000..55914961660 --- /dev/null +++ b/.github/workflows/cli-install-test.yml @@ -0,0 +1,42 @@ +name: CLI Install Test + +on: + workflow_call: + inputs: + include-windows: + description: 'Include Windows in the test matrix' + type: boolean + default: false + workflow_dispatch: + inputs: + include-windows: + description: 'Include Windows in the test matrix' + type: boolean + default: true + schedule: + # Run nightly at 6am UTC with full matrix (including Windows) + - cron: '0 6 * * *' + +jobs: + cli-install-test: + strategy: + matrix: + os: ${{ (github.event_name == 'schedule' || inputs.include-windows) && fromJson('["depot-ubuntu-latest", "depot-macos-latest", "depot-windows-2025-8"]') || fromJson('["depot-ubuntu-latest", "depot-macos-latest"]') }} + node-version: [24, 25] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + + - name: install-hyperlane-cli + id: install-hyperlane-cli + uses: ./.github/actions/install-cli + with: + ref: ${{ github.sha }} + no-cache: true + + - name: Test run the CLI + run: hyperlane --version diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af5f1e3b940..f190d1b5a76 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -124,33 +124,14 @@ jobs: echo "all_latest=$all_latest" >> $GITHUB_OUTPUT # If we detect that not all packages are published, we run the - # cli-install-cross-platform-release-test workflow to verify that the CLI installs correctly on all platforms. - # In all other cases, we already have a barebones `cli-install` test on the default CI platform - # which will catch most issues before any offending PR is merged. + # cli-install-test workflow to verify that the CLI installs correctly. + # Windows is excluded here for speed but tested nightly via cli-install-test.yml. cli-install-cross-platform-release-test: needs: [check-latest-published] if: needs.check-latest-published.outputs.all_latest == 'false' - strategy: - matrix: - os: [depot-ubuntu-latest, depot-macos-latest, depot-windows-2025-8] - node-version: [24, 25] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v6 - - - uses: actions/setup-node@v6 - with: - node-version: ${{ matrix.node-version }} - - - name: install-hyperlane-cli - id: install-hyperlane-cli - uses: ./.github/actions/install-cli - with: - ref: ${{ github.sha }} - no-cache: true - - - name: Test run the CLI - run: hyperlane --version + uses: ./.github/workflows/cli-install-test.yml + with: + include-windows: false # This job publishes the release to NPM. publish-release: From ce75aa69a2f9787dba5198aee74df95b5b1dc6fa Mon Sep 17 00:00:00 2001 From: pbio <10051819+paulbalaji@users.noreply.github.com> Date: Fri, 30 Jan 2026 12:48:31 +0000 Subject: [PATCH 2/3] test: temp triggers for testing [TO REVERT] --- .github/workflows/release.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f190d1b5a76..a9b3b9308fb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - speed-up-cross-platform-cli-test # TODO: revert after testing paths: - '.changeset/**' - '**/package.json' @@ -127,8 +128,9 @@ jobs: # cli-install-test workflow to verify that the CLI installs correctly. # Windows is excluded here for speed but tested nightly via cli-install-test.yml. cli-install-cross-platform-release-test: - needs: [check-latest-published] - if: needs.check-latest-published.outputs.all_latest == 'false' + # TODO: revert after testing - temporarily run unconditionally + # needs: [check-latest-published] + # if: needs.check-latest-published.outputs.all_latest == 'false' uses: ./.github/workflows/cli-install-test.yml with: include-windows: false @@ -136,7 +138,8 @@ jobs: # This job publishes the release to NPM. publish-release: needs: cli-install-cross-platform-release-test - if: github.ref == 'refs/heads/main' + # TODO: revert after testing - disabled to prevent accidental publish + if: false # was: github.ref == 'refs/heads/main' permissions: id-token: write contents: write From ab235040c961f6c64759cd7f41412c38febb56f5 Mon Sep 17 00:00:00 2001 From: pbio <10051819+paulbalaji@users.noreply.github.com> Date: Fri, 30 Jan 2026 12:53:45 +0000 Subject: [PATCH 3/3] Revert "test: temp triggers for testing [TO REVERT]" This reverts commit ce75aa69a2f9787dba5198aee74df95b5b1dc6fa. --- .github/workflows/release.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9b3b9308fb..f190d1b5a76 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - speed-up-cross-platform-cli-test # TODO: revert after testing paths: - '.changeset/**' - '**/package.json' @@ -128,9 +127,8 @@ jobs: # cli-install-test workflow to verify that the CLI installs correctly. # Windows is excluded here for speed but tested nightly via cli-install-test.yml. cli-install-cross-platform-release-test: - # TODO: revert after testing - temporarily run unconditionally - # needs: [check-latest-published] - # if: needs.check-latest-published.outputs.all_latest == 'false' + needs: [check-latest-published] + if: needs.check-latest-published.outputs.all_latest == 'false' uses: ./.github/workflows/cli-install-test.yml with: include-windows: false @@ -138,8 +136,7 @@ jobs: # This job publishes the release to NPM. publish-release: needs: cli-install-cross-platform-release-test - # TODO: revert after testing - disabled to prevent accidental publish - if: false # was: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' permissions: id-token: write contents: write