[PR #5514] [MERGED] feat(ci): agent workflow with platform jobs #5245

Closed
opened 2026-03-17 02:42:34 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hoppscotch/hoppscotch/pull/5514
Author: @CuriousCorrelation
Created: 10/26/2025
Status: Merged
Merged: 10/27/2025
Merged by: @jamesgeorge007

Base: nextHead: ci-agent-platform-jobs-split


📝 Commits (1)

  • cfe5e7e feat(ci): agent workflow with platform jobs

📊 Changes

1 file changed (+649 additions, -228 deletions)

View changed files

📝 .github/workflows/build-hoppscotch-agent.yml (+649 -228)

📄 Description

This replaces the matrix-based Agent build strategy with dedicated
platform-specific jobs, synchronizing with the Desktop workflow
patterns and preparing for the broader CI/CD updation cycle.

Closes FE-994
Closes FE-996
Closes FE-997
Closes FE-998
Closes FE-999
Closes FE-1000

The Agent workflow used a single matrix job handling all
platforms (macOS, Linux, Windows) in one build strategy. This created
issues with platform-specific configurations, made selective builds
impossible, and diverged from the Desktop workflow's more maintainable
and easy to understand method with specific toggle for signing as well.

The matrix strategy also needs conditional logic for platform
detection, variable setting, and tool installation, making the workflow
difficult to debug (see FE-925).

Changes

Replaced the single build job with six dedicated jobs:
build-macos-x86_64, build-macos-aarch64, build-linux-deb,
build-linux-appimage, build-windows-installer, and
build-windows-portable.

Each job includes dedicated build steps, platform-specific shell
configurations, individual timeout settings, targeted tool
installations, and independent conditional execution.

build-macos-x86_64:
  name: Build MacOS x86_64 (.dmg)
  runs-on: macos-latest
  if: ${{ inputs.build_macos_x64 }}
  timeout-minutes: 60
  steps:
    - name: Install Rust target run: rustup target add x86_64-apple-darwin

Added individual boolean inputs for selective platform builds:
build_macos_x64, build_macos_arm64, build_linux_deb,
build_linux_appimage, build_windows_installer, and
build_windows_portable.

Each input defaults to true to maintain existing behavior where all
platforms build by default. Jobs use conditional execution based on
corresponding inputs, allowing users to trigger specific platform
builds without running the entire matrix.

on:
  workflow_dispatch:
    inputs:
      build_macos_x64:
        description: Build for macOS x64
        type: boolean
        required: false
        default: true

The manifest generation job runs only when all required
platforms (macOS x64/ARM64, Linux AppImage, Windows installer) are
built, strictly preventing incomplete update manifests.

Secret Naming Standardization

Updated Apple signing secrets to use HOPPSCOTCH_ prefix matching the
Desktop workflow: APPLE_CERTIFICATE to
HOPPSCOTCH_APPLE_CERTIFICATE, APPLE_ID to HOPPSCOTCH_APPLE_ID,
APPLE_PASSWORD to HOPPSCOTCH_APPLE_PASSWORD, APPLE_TEAM_ID to
HOPPSCOTCH_APPLE_TEAM_ID, and APPLE_SIGNING_IDENTITY to
HOPPSCOTCH_APPLE_SIGNING_IDENTITY.

This is for more granular control of which specific set of certs are
being used for the run.

Maintained Agent-specific Tauri signing
secrets (AGENT_TAURI_SIGNING_PRIVATE_KEY,
AGENT_TAURI_SIGNING_PASSWORD) to preserve distinction from Desktop
signing.

env:
  APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }}
  APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }}
  APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }}

Tool Version Updates

Updated pnpm from @v2 to @v4 with explicit version 10.15.0,
standardized on actions/cache @v4 from @v3, and consolidated Tauri
CLI installations to tauri-cli-v2.0.1 across all platforms.

Updated Windows signing to use trusted-signing-cli 0.8.0
downloaded directly instead of cargo install.

Artifacts

Standardized artifact naming using pattern
Hoppscotch_Agent-{platform}-{arch} for workflow artifacts and
Hoppscotch_Agent_{platform}_{arch}.{ext} for build outputs.

Organized artifacts into sigs/, updaters/, and shas/
subdirectories where applicable. Updated manifest generation to
reference new artifact paths with proper subdirectory structure.

Timeout Configurations

Added explicit timeout settings for long-running operations: 60 minutes
for overall job execution, 5 minutes for tool installations and Rust
target additions, 15 minutes for dependency installation, 30 minutes
for Tauri builds, and 2 minutes for checksum generation.

Backward Compatibility

Default behavior maintains building all platforms when triggered
without explicit input overrides. Existing release processes continue
to work unchanged since all platform inputs default to true.

Secret naming changes require repository secret updates but maintain
identical functionality. Artifact paths change but manifest generation
updates preserve update system compatibility.

Notes to reviewers

This refactor is part of FE-993, the larger epic for updating native
CI/CD workflows across all repository groups. Desktop workflow
changes (FE-995) will follow in a separate PR using similar patterns.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hoppscotch/hoppscotch/pull/5514 **Author:** [@CuriousCorrelation](https://github.com/CuriousCorrelation) **Created:** 10/26/2025 **Status:** ✅ Merged **Merged:** 10/27/2025 **Merged by:** [@jamesgeorge007](https://github.com/jamesgeorge007) **Base:** `next` ← **Head:** `ci-agent-platform-jobs-split` --- ### 📝 Commits (1) - [`cfe5e7e`](https://github.com/hoppscotch/hoppscotch/commit/cfe5e7e8004eabc04fe6577efc0d52d4296b0f4f) feat(ci): agent workflow with platform jobs ### 📊 Changes **1 file changed** (+649 additions, -228 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build-hoppscotch-agent.yml` (+649 -228) </details> ### 📄 Description This replaces the matrix-based Agent build strategy with dedicated platform-specific jobs, synchronizing with the Desktop workflow patterns and preparing for the broader CI/CD updation cycle. Closes FE-994 Closes FE-996 Closes FE-997 Closes FE-998 Closes FE-999 Closes FE-1000 The Agent workflow used a single matrix job handling all platforms (macOS, Linux, Windows) in one build strategy. This created issues with platform-specific configurations, made selective builds impossible, and diverged from the Desktop workflow's more maintainable and easy to understand method with specific toggle for signing as well. The matrix strategy also needs conditional logic for platform detection, variable setting, and tool installation, making the workflow difficult to debug (see FE-925). ## Changes Replaced the single `build` job with six dedicated jobs: `build-macos-x86_64`, `build-macos-aarch64`, `build-linux-deb`, `build-linux-appimage`, `build-windows-installer`, and `build-windows-portable`. Each job includes dedicated build steps, platform-specific shell configurations, individual timeout settings, targeted tool installations, and independent conditional execution. ```yaml build-macos-x86_64: name: Build MacOS x86_64 (.dmg) runs-on: macos-latest if: ${{ inputs.build_macos_x64 }} timeout-minutes: 60 steps: - name: Install Rust target run: rustup target add x86_64-apple-darwin ``` Added individual boolean inputs for selective platform builds: `build_macos_x64`, `build_macos_arm64`, `build_linux_deb`, `build_linux_appimage`, `build_windows_installer`, and `build_windows_portable`. Each input defaults to `true` to maintain existing behavior where all platforms build by default. Jobs use conditional execution based on corresponding inputs, allowing users to trigger specific platform builds without running the entire matrix. ```yaml on: workflow_dispatch: inputs: build_macos_x64: description: Build for macOS x64 type: boolean required: false default: true ``` The manifest generation job runs only when all required platforms (macOS x64/ARM64, Linux AppImage, Windows installer) are built, strictly preventing incomplete update manifests. ### Secret Naming Standardization Updated Apple signing secrets to use `HOPPSCOTCH_` prefix matching the Desktop workflow: `APPLE_CERTIFICATE` to `HOPPSCOTCH_APPLE_CERTIFICATE`, `APPLE_ID` to `HOPPSCOTCH_APPLE_ID`, `APPLE_PASSWORD` to `HOPPSCOTCH_APPLE_PASSWORD`, `APPLE_TEAM_ID` to `HOPPSCOTCH_APPLE_TEAM_ID`, and `APPLE_SIGNING_IDENTITY` to `HOPPSCOTCH_APPLE_SIGNING_IDENTITY`. This is for more granular control of which specific set of certs are being used for the run. Maintained Agent-specific Tauri signing secrets (`AGENT_TAURI_SIGNING_PRIVATE_KEY`, `AGENT_TAURI_SIGNING_PASSWORD`) to preserve distinction from Desktop signing. ```yaml env: APPLE_ID: ${{ secrets.HOPPSCOTCH_APPLE_ID }} APPLE_PASSWORD: ${{ secrets.HOPPSCOTCH_APPLE_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.HOPPSCOTCH_APPLE_TEAM_ID }} ``` ### Tool Version Updates Updated pnpm from `@v2` to `@v4` with explicit version `10.15.0`, standardized on actions/cache `@v4` from `@v3`, and consolidated Tauri CLI installations to `tauri-cli-v2.0.1` across all platforms. Updated Windows signing to use trusted-signing-cli `0.8.0` downloaded directly instead of cargo install. ### Artifacts Standardized artifact naming using pattern `Hoppscotch_Agent-{platform}-{arch}` for workflow artifacts and `Hoppscotch_Agent_{platform}_{arch}.{ext}` for build outputs. Organized artifacts into `sigs/`, `updaters/`, and `shas/` subdirectories where applicable. Updated manifest generation to reference new artifact paths with proper subdirectory structure. ### Timeout Configurations Added explicit timeout settings for long-running operations: 60 minutes for overall job execution, 5 minutes for tool installations and Rust target additions, 15 minutes for dependency installation, 30 minutes for Tauri builds, and 2 minutes for checksum generation. ## Backward Compatibility Default behavior maintains building all platforms when triggered without explicit input overrides. Existing release processes continue to work unchanged since all platform inputs default to `true`. Secret naming changes require repository secret updates but maintain identical functionality. Artifact paths change but manifest generation updates preserve update system compatibility. ## Notes to reviewers This refactor is part of FE-993, the larger epic for updating native CI/CD workflows across all repository groups. Desktop workflow changes (FE-995) will follow in a separate PR using similar patterns. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-17 02:42:34 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hoppscotch#5245
No description provided.