Skip to content

arm64 runner gets amd64 binary — wrong file selected from mirror #124

@ktdreyer

Description

@ktdreyer
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

Summary

On an arm64 GitHub Actions runner (ubuntu-24.04-arm), the action downloads the generic openshift-client-linux-4.21.12.tar.gz (amd64) instead of openshift-client-linux-arm64-4.21.12.tar.gz. The resulting oc binary fails to execute.

Steps to reproduce

runs-on: ubuntu-24.04-arm

steps:
  - name: Install oc
    uses: redhat-actions/openshift-tools-installer@v1
    with:
      oc: "4"

Expected behavior

The action selects openshift-client-linux-arm64-*.tar.gz on an arm64 runner.

Actual behavior

The action logs show it detects arm64 as the architecture, but selects the first matching file (openshift-client-linux-4.21.12.tar.gz, which is the amd64 build):

Current architecture is arm64
Multiple files were found for oc that matched the current OS and architecture: openshift-client-linux-4.21.12.tar.gz, ..., openshift-client-linux-arm64-4.21.12.tar.gz, ... Selecting the first one.
Selecting openshift-client-linux-4.21.12.tar.gz

The installed binary then fails:

/home/runner/work/_temp/openshift-bin/oc: 6: Syntax error: ")" unexpected

Cause

The OCP mirror now publishes binaries for arm64, ppc64le, and s390x alongside amd64. The filter pipeline for tools in the ocp directory (oc, openshift-install, opm) does not filter by architecture, so all architectures pass through and the first file alphabetically wins.

Environment

  • Runner: ubuntu-24.04-arm (arm64)
  • Action version: v1
  • oc version resolved: 4.21.12

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions