actions / actions/setup-go

Enable installation of go on ppc64/ppc64le systems

Open
#517 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
TypeScript
Stars
1.8k
Forks
673
Avg merge
6d 28m
Merged PRs (30d)
4

Description

Description:
Enable setup-go on ppc64le systems. I do see there is a block of code to related to this, which is commented.
https://github.com/actions/setup-go/blob/41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed/src/system.ts#L27-L29

However, with NodeJS not having the capability to determine the endianness of the host using the generic os.arch() call, it is imperative to have os.endianness() differentiate and pick bundles for installation on ppc64/ppc64le systems.

I am using a self-hosted ppc64le system, on which the issue was observed.

Run actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed
  with:
    go-version: 1.[2](https://github.com/kishen-v/cri-o/actions/runs/11957574849/job/33337601992#step:3:2)3
    check-latest: false
    token: ***
    cache: true
  env:
    GO_VERSION: 1.2[3](https://github.com/kishen-v/cri-o/actions/runs/11957574849/job/33337601992#step:3:3)
    CONMON_BINARY: /usr/local/bin/conmon
Setup go version spec 1.23
Found in cache @ /home/ghrunner/runner/_layout/_work/_tool/go/1.23.3/ppc6[4](https://github.com/kishen-v/cri-o/actions/runs/11957574849/job/33337601992#step:3:4)
Added go to the path
Successfully set up Go version 1.23
/bin/sh: line 1: /home/ghrunner/runner/_layout/_work/_tool/go/1.23.3/ppc[6](https://github.com/kishen-v/cri-o/actions/runs/11957574849/job/33337601992#step:3:6)4/bin/go: cannot execute binary file: Exec format error
Error: Command failed: go env GOPATH
/bin/sh: line 1: /home/ghrunner/runner/_layout/_work/_tool/go/1.23.3/ppc64/bin/go: cannot execute binary file: Exec format error

Justification:
This change can help to install go on ppc64/ppc64le systems using setup-go, which are added as self-hosted runners.

Are you willing to submit a PR?
Yes.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/system.ts at lines 27-29 and inspect the existing commented architecture handling, including Node.js os.arch() and os.endianness(). Reproduce setup-go on a self-hosted ppc64/ppc64le runner and verify that the selected Go bundle executes successfully and go env GOPATH completes.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, node.js, typescript
Domain
ci-cd, operating-systems, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.