Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 22, 2025

This PR adds support for additional architectures to resolve installation failures on non-x86 platforms. Previously, users on architectures like s390x would encounter:

> [linux/s390x  6/17] RUN helm plugin install https://github.com/databus23/helm-diff && rm -rf /tmp/helm-*:
#0 2.445 mkdir: can't create directory '': No such file or directory
#0 2.484 No prebuild binary for linux-s390x.
#0 2.485 Failed to install helm-diff

Changes Made

New Linux architectures now supported:

  • linux/arm/v6 (32-bit ARM EABI5)
  • linux/arm/v7 (32-bit ARM EABI5)
  • linux/ppc64le (64-bit PowerPC little endian)
  • linux/s390x (64-bit IBM System z)

New FreeBSD/Windows architectures now supported:

  • freebsd/arm64 (64-bit ARM)
  • windows/arm64 (64-bit ARM)

Updated build configuration:

  • GoReleaser: Added separate build configuration for Linux-specific architectures with proper ARM variant handling, removed ignore section to build all supported architectures
  • Makefile: Extended dist target to build all new architectures with appropriate GOARM flags
  • Install script: Enhanced architecture detection and added all new platforms to supported list

Verification:

  • All new binaries compile correctly for their target architectures
  • Generated archives contain proper file structure (plugin.yaml, binary, docs)
  • Install script logic correctly detects and handles all new architectures
  • Existing functionality and tests remain unaffected

The plugin can now be successfully installed on all requested platforms, expanding compatibility from the original 6 supported platforms to 12 total platforms.

Fixes #436.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copy link
Contributor Author

Copilot AI commented Aug 22, 2025

@yxxhero 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs.

I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review.

@Copilot Copilot AI changed the title [WIP] multi-arch support Add multi-architecture support for Linux platforms Aug 22, 2025
@Copilot Copilot AI requested a review from yxxhero August 22, 2025 12:39
Copilot finished work on behalf of yxxhero August 22, 2025 12:39
@yxxhero yxxhero marked this pull request as ready for review August 23, 2025 00:01
@yxxhero
Copy link
Collaborator

yxxhero commented Aug 23, 2025

@copilot merge main branch.

Copy link
Contributor Author

Copilot AI commented Aug 23, 2025

@copilot merge main branch.

Merged master branch successfully. The branch now includes the latest 4 commits from master including CI workflow updates, dependency bumps, and GitHub Copilot instructions. Build and functionality verified after merge. Commit: 596f5ad

Copilot finished work on behalf of yxxhero August 23, 2025 00:09
.goreleaser.yml Outdated
Comment on lines 24 to 28
ignore:
- goos: freebsd
goarch: arm64
- goos: windows
goarch: arm64
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot why we should add those code?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ignore section prevents GoReleaser from building unsupported platform combinations.

The default build includes both freebsd and windows in goos, and arm64 in goarch. Without these ignore rules, GoReleaser would build all combinations including freebsd-arm64 and windows-arm64.

However, the install script only supports:

  • freebsd-amd64 (not arm64)
  • windows-amd64 (not arm64)

So these ignore rules prevent building binaries that users cannot install, avoiding unnecessary build artifacts and potential confusion.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot we can add those into install script. so please remove ignore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the ignore section from GoReleaser configuration and added freebsd-arm64 and windows-arm64 to the install script's supported platforms list. Now GoReleaser will build binaries for all architecture combinations and users on those platforms can successfully install the plugin. Commit: 45d47da

@Copilot Copilot AI requested a review from yxxhero August 23, 2025 00:33
Copilot finished work on behalf of yxxhero August 23, 2025 00:33
@Copilot Copilot AI changed the title Add multi-architecture support for Linux platforms Add multi-architecture support for Linux platforms and FreeBSD/Windows ARM64 Aug 23, 2025
Copilot finished work on behalf of yxxhero August 23, 2025 00:47
@yxxhero yxxhero merged commit 7cce58e into master Aug 23, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

multi-arch support
2 participants