[PR #69] [MERGED] Add support for Alpine Linux signing, Arch Linux builds, and Windows ARM #74

Closed
opened 2026-02-28 01:17:06 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/therealpaulgg/ssh-sync/pull/69
Author: @Copilot
Created: 6/16/2025
Status: Merged
Merged: 6/18/2025
Merged by: @therealpaulgg

Base: mainHead: copilot/fix-68


📝 Commits (4)

  • 9a3f531 Initial plan for issue
  • 0e9e2a6 Add Windows ARM64, Arch Linux, and Alpine signing support
  • fc51746 Fix Arch Linux package creation and add zstd dependency
  • 23dd601 update tests

📊 Changes

3 files changed (+175 additions, -46 deletions)

View changed files

📝 .github/workflows/release.yml (+123 -36)
📝 .github/workflows/tests.yml (+37 -8)
📝 win-build/setup.iss (+15 -2)

📄 Description

This PR implements the three main requirements from issue #68:

🔐 Alpine Linux Package Signing

  • Replaced unsigned Alpine package creation with proper abuild-sign implementation
  • Added RSA key setup using GitHub secrets (ALPINE_PRIVATE_KEY, ALPINE_PUBLIC_KEY)
  • Implemented signed APKINDEX creation with proper Alpine tools
  • Added fallback mechanisms for systems without abuild tools

🏗️ Arch Linux Build Support

  • Added .pkg.tar.zst package creation using FPM with zstd compression
  • Implemented proper Arch Linux naming convention and repository structure
  • Added repository database creation using repo-add for x86_64, aarch64, and armv7h architectures
  • Updated artifact collection to include Arch packages in releases

💻 Windows ARM64 Support

  • Modified build-windows job to use matrix strategy for both amd64 and arm64 architectures
  • Updated Inno Setup script to handle architecture-specific builds and output filenames
  • Added ARM64-specific installer configuration with proper architecture restrictions

Technical Changes

Files Modified:

  • .github/workflows/release.yml: Enhanced release pipeline with multi-architecture support
  • win-build/setup.iss: Updated Inno Setup configuration for ARM64 compatibility

Key Features:

  • Matrix strategies for scalable multi-architecture builds
  • Proper error handling and fallback mechanisms
  • Maintained existing YAML formatting as requested
  • Added all necessary dependencies (zstd, Alpine tools, etc.)

New Package Formats Available:

  • Windows: ssh-sync-setup-amd64.exe, ssh-sync-setup-arm64.exe
  • Arch Linux: ssh-sync-VERSION-ARCH.pkg.tar.zst
  • Alpine Linux: Signed .apk packages with proper APKINDEX

All changes have been tested to ensure builds work correctly and package formats are generated properly.

Fixes #68.

Warning

Firewall rules blocked me from connecting to one or more addresses

I tried to connect to the following addresses, but was blocked by firewall rules:

  • esm.ubuntu.com
    • Triggering command: /usr/lib/apt/methods/https (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.


🔄 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/therealpaulgg/ssh-sync/pull/69 **Author:** [@Copilot](https://github.com/apps/copilot-swe-agent) **Created:** 6/16/2025 **Status:** ✅ Merged **Merged:** 6/18/2025 **Merged by:** [@therealpaulgg](https://github.com/therealpaulgg) **Base:** `main` ← **Head:** `copilot/fix-68` --- ### 📝 Commits (4) - [`9a3f531`](https://github.com/therealpaulgg/ssh-sync/commit/9a3f53104637bd57da5bf59a526464fd39793a3b) Initial plan for issue - [`0e9e2a6`](https://github.com/therealpaulgg/ssh-sync/commit/0e9e2a6667959b9ae210fa15693e26d5b88aa2ba) Add Windows ARM64, Arch Linux, and Alpine signing support - [`fc51746`](https://github.com/therealpaulgg/ssh-sync/commit/fc517462b9473aae0a68d5e378315881e8f1ae84) Fix Arch Linux package creation and add zstd dependency - [`23dd601`](https://github.com/therealpaulgg/ssh-sync/commit/23dd601d436a1b17773ccc92df5d97c25797bfd2) update tests ### 📊 Changes **3 files changed** (+175 additions, -46 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/release.yml` (+123 -36) 📝 `.github/workflows/tests.yml` (+37 -8) 📝 `win-build/setup.iss` (+15 -2) </details> ### 📄 Description This PR implements the three main requirements from issue #68: ## 🔐 Alpine Linux Package Signing - Replaced unsigned Alpine package creation with proper `abuild-sign` implementation - Added RSA key setup using GitHub secrets (`ALPINE_PRIVATE_KEY`, `ALPINE_PUBLIC_KEY`) - Implemented signed APKINDEX creation with proper Alpine tools - Added fallback mechanisms for systems without `abuild` tools ## 🏗️ Arch Linux Build Support - Added `.pkg.tar.zst` package creation using FPM with zstd compression - Implemented proper Arch Linux naming convention and repository structure - Added repository database creation using `repo-add` for x86_64, aarch64, and armv7h architectures - Updated artifact collection to include Arch packages in releases ## 💻 Windows ARM64 Support - Modified `build-windows` job to use matrix strategy for both `amd64` and `arm64` architectures - Updated Inno Setup script to handle architecture-specific builds and output filenames - Added ARM64-specific installer configuration with proper architecture restrictions ## Technical Changes **Files Modified:** - `.github/workflows/release.yml`: Enhanced release pipeline with multi-architecture support - `win-build/setup.iss`: Updated Inno Setup configuration for ARM64 compatibility **Key Features:** - Matrix strategies for scalable multi-architecture builds - Proper error handling and fallback mechanisms - Maintained existing YAML formatting as requested - Added all necessary dependencies (zstd, Alpine tools, etc.) **New Package Formats Available:** - Windows: `ssh-sync-setup-amd64.exe`, `ssh-sync-setup-arm64.exe` - Arch Linux: `ssh-sync-VERSION-ARCH.pkg.tar.zst` - Alpine Linux: Signed `.apk` packages with proper APKINDEX All changes have been tested to ensure builds work correctly and package formats are generated properly. Fixes #68. > [!WARNING] > > <details> > <summary>Firewall rules blocked me from connecting to one or more addresses</summary> > > #### I tried to connect to the following addresses, but was blocked by firewall rules: > > - `esm.ubuntu.com` > - Triggering command: `/usr/lib/apt/methods/https ` (dns block) > > If you need me to access, download, or install something from one of these locations, you can either: > > - Configure [Actions setup steps](https://gh.io/copilot/actions-setup-steps) to set up my environment, which run before the firewall is enabled > - Add the appropriate URLs or hosts to my [firewall allow list](https://gh.io/copilot/firewall-config) > > </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click [here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to start the survey. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-28 01:17:06 +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/ssh-sync#74
No description provided.