OS/Architecture Requirements for Cross-Platform CI in reverse-skill: Windows and Ubuntu Support
The reverse-skill CI pipeline enforces strict OS/architecture requirements for cross-platform CI by running exclusively on x86-64 (AMD64) architecture across Windows Server 2022 and Ubuntu 22.04 GitHub-hosted runners, utilizing PowerShell 5.1 on Windows and PowerShell Core with a command shim on Ubuntu.
The zhaoxuya520/reverse-skill repository validates its automation scripts and tooling through a GitHub Actions workflow designed for cross-platform compatibility. Understanding these specific platform constraints ensures contributors can replicate CI behavior locally and troubleshoot architecture-specific failures effectively.
Platform Matrix and Architecture Constraints
The CI workflow defines a build matrix that targets two specific GitHub-hosted runners. According to the configuration in .github/workflows/ci.yml (lines 14-17), the pipeline executes on:
- windows-latest: Running Windows Server 2022 on x86-64 (AMD64) architecture with native Windows PowerShell 5.1
- ubuntu-latest: Running Ubuntu 22.04 on x86-64 (AMD64) architecture with PowerShell Core
Because GitHub’s hosted runners currently provide only x86-64 architecture, the reverse-skill CI implicitly requires all native dependencies—Java runtimes, Node.js, and Python interpreters—to be available for AMD64. The configuration does not exercise ARM64, ARM32, or alternative architectures.
PowerShell Implementation Strategy
The repository handles PowerShell invocation differently across platforms to maintain cross-platform compatibility while accommodating runner-specific constraints.
Windows PowerShell 5.1
On the windows-latest runner, the CI uses the native Windows PowerShell 5.1 installation. This provides full compatibility with legacy Windows-specific modules and execution policies required by the repository’s automation scripts, as documented in docs/PLATFORMS.md.
Ubuntu PowerShell Core with Shim
The ubuntu-latest runner ships with PowerShell Core (pwsh) only, omitting the legacy powershell command. To ensure scripts referencing the powershell executable function correctly, the CI workflow creates a symbolic link shim. As defined in .github/workflows/ci.yml (lines 21-26):
- name: powershell shim (linux)
if: runner.os == 'Linux'
shell: bash
run: sudo ln -sf "$(command -v pwsh)" /usr/local/bin/powershell
This shim redirects calls to powershell to the pwsh binary, allowing unified script execution across both platforms without modification.
Supporting Files and Platform Documentation
The OS/architecture requirements for cross-platform CI are formally documented and enforced through several key files:
.github/workflows/ci.yml: Defines the OS matrix and PowerShell shim logic for cross-platform executiondocs/PLATFORMS.md(lines 11-17): Documents the supported platform matrix, confirming Windows as the primary path and Ubuntu as the supported generic Linux pathskills/scripts/bootstrap-reverse.sh: Serves as the entry point for Linux/Ubuntu CI jobs, initializing the environment on Ubuntu runnersskills/scripts/refresh-tool-index.sh: Refreshes the tool index after bootstrapping, executing on both Windows and Ubuntu runners to maintain synchronized state
Summary
- The reverse-skill CI requires x86-64 architecture exclusively for both Windows and Ubuntu runners
- Windows Server 2022 runners use native PowerShell 5.1, while Ubuntu 22.04 runners use PowerShell Core with a command shim
- The matrix strategy in
.github/workflows/ci.ymlenforces these platform constraints at the workflow level - No ARM or alternative architectures are currently supported in the CI configuration
- Platform documentation in
docs/PLATFORMS.mdmirrors the CI matrix configuration for consistency
Frequently Asked Questions
Does reverse-skill CI support ARM64 or Apple Silicon runners?
No. The current CI configuration targets only GitHub-hosted windows-latest and ubuntu-latest runners, which exclusively provide x86-64 (AMD64) architecture. The workflow matrices in .github/workflows/ci.yml do not include ARM64, ARM32, or macOS runners, meaning contributors must rely on cross-compilation or emulation for ARM-specific testing.
Why does the Ubuntu CI use a PowerShell shim instead of calling pwsh directly?
The shim ensures backward compatibility with scripts and tooling that invoke the powershell command explicitly. Since Ubuntu runners ship only with PowerShell Core (pwsh), the symbolic link at /usr/local/bin/powershell allows existing automation to function without platform-specific modifications, maintaining consistency with Windows execution patterns where powershell is the standard command.
Which PowerShell version executes on the Windows CI runner?
The windows-latest runner utilizes native Windows PowerShell 5.1, not PowerShell Core. This distinction matters for execution policy settings and module compatibility, as documented in docs/PLATFORMS.md (lines 11-17) and implemented in the CI workflow logic. Scripts relying on PowerShell 7+ features will fail on Windows runners unless specifically invoked through an alternative method.
Can I run the CI pipeline on self-hosted runners with different OS versions?
While the repository defines requirements for GitHub-hosted runners, self-hosted runners must replicate the same architecture (x86-64) and PowerShell environments (5.1 for Windows, Core for Linux with shim) to ensure compatibility with the bootstrap scripts referenced in skills/scripts/bootstrap-reverse.sh and the refresh tooling in skills/scripts/refresh-tool-index.sh. Deviations from these versions may cause the bootstrapping logic to fail or produce inconsistent tool indices.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →