Skip to content

Conversation

@robandpdx
Copy link
Contributor

@robandpdx robandpdx commented Nov 8, 2025

This is a change to the CI workflow to build and publish a linux-arm64 version of the GEI executable. This will allow MacOS users to run GEI inside ARC runners in a K8s cluster on their localhost. This removes a lot of friction in developing and testing migrations-via-actions or any other migrations workflows that run on K8s that use GEI. This fixes #1435.

I have built and tested this in my forked repo. You can also see the results by running an ubuntu docker container on MacOS, install GH CLI, and install the GEI binaries I've built in my fork. The process is as follows:

  1. Start an ubuntu container on MacOS docker run -it ubuntu /bin/bash
  2. In the container, install GH CLI...
(type -p wget >/dev/null || ( apt update &&  apt install wget -y)) \
  &&  mkdir -p -m 755 /etc/apt/keyrings \
  && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
  && cat $out |  tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
  &&  chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
  &&  mkdir -p -m 755 /etc/apt/sources.list.d \
  && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" |  tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
  &&  apt update \
  &&  apt install gh -y
  1. In the container, install the gh-gei CLI extension from my fork...
gh extension install robandpdx/gh-gei
  1. In the container, run GEI... export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 && gh gei
  • Did you write/update appropriate tests
  • Release notes updated (if appropriate)
  • Appropriate logging output
  • Issue linked
  • Docs updated (or issue created)
  • New package licenses are added to ThirdPartyNotices.txt (if applicable)

Copilot AI review requested due to automatic review settings November 8, 2025 02:20
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request adds Linux ARM64 (aarch64) architecture support to the build and release process for all three CLI tools: ado2gh, gei, and bbs2gh. This enables users to run these migration tools on ARM64-based Linux systems.

  • Adds linux-arm64 build targets to the publish script for all three CLIs
  • Updates CI workflow to include linux-arm64 binaries in release artifacts

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
publish.ps1 Adds linux-arm64 build, packaging, and artifact generation for ado2gh, gei, and bbs2gh CLIs
.github/workflows/CI.yml Includes linux-arm64 binaries in the release artifact paths for all three CLI tools

Comment on lines +62 to +63

# linux-arm64 build
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The linux-arm64 builds are placed within the SKIP_LINUX conditional block. This means setting SKIP_LINUX=TRUE will skip both linux-x64 and linux-arm64 builds. Consider adding a separate SKIP_LINUX_ARM64 environment variable check if you want independent control over ARM64 builds, or clarify this behavior in documentation if the current grouping is intentional.

Suggested change
# linux-arm64 build
}
# linux-arm64 build (controlled by SKIP_LINUX_ARM64)
if ((Test-Path env:SKIP_LINUX_ARM64) -And $env:SKIP_LINUX_ARM64.ToUpper() -eq "TRUE") {
Write-Output "Skipping ado2gh Linux ARM64 build because SKIP_LINUX_ARM64 is set"
}
else {

Copilot uses AI. Check for mistakes.
@github-actions
Copy link

github-actions bot commented Nov 8, 2025

Unit Test Results

  1 files    1 suites   10m 25s ⏱️
948 tests 948 ✅ 0 💤 0 ❌
949 runs  949 ✅ 0 💤 0 ❌

Results for commit b65ed95.

@github-actions
Copy link

github-actions bot commented Nov 8, 2025

Code Coverage

Package Line Rate Branch Rate Complexity Health
ado2gh 72% 70% 712
Octoshift 83% 72% 1714
bbs2gh 83% 77% 653
gei 81% 72% 574
Summary 80% (7692 / 9555) 73% (1810 / 2491) 3653

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.

Add support for the linux-arm64 architecture

1 participant