Supporting ppc64le and s390x

@bradrydzewski Could you tell me your email?

I found your linkedin. That’s good enough :slight_smile:
https://www.linkedin.com/in/bradrydzewski/

DIND for P
https://hub.docker.com/layers/ibmcom/docker-ppc64le/19.03-dind/images/sha256-27e1657487536ea09a3c95ac1d4e845f69faf5bec82f6d3304b227dc44b3a1dc?context=explore

Hello, how is the progress for this topic?

@bradrydzewski @junaruga Can we please move this forward. My team at SUSE can introduce you to people who can arrange s390x servers for you. Can we have a meeting so that we move forward on this issue. Thanks.

Note: There are dind docker images for s390x. Docker Hub

My team can make PR’s for s390x once IBM gives s390x servers to drone community.

@rohitsakala I appreciate your offer. But as I am not working at Drone CI, no idea about how to move forward. @bradrydzewski and @rpsene can help?

There is some progress happening here Add support for s390x architecture by rohitsakala · Pull Request #329 · drone-plugins/drone-docker · GitHub

@bradrydzewski, I tried running a drone runner in ppc64le and when I try it, the drone server
running on amd64 gives the following message.

linter: unsupported architecture: ppc64le

I couldn’t find out where this message is coming from (except for drone-yaml which is archived).

After fixing drone-yaml, I can run a drone docker runner on ppc64le.

If anyone is interested, I published a drone-docker-runner (ppc64le) image and a drone server (amd64)
to quay.io/isuruf.

Isuru

Hey there.

I know that it’s been late, but can you tell me which part should I modify in order to support the s390x build on Drone?

I already built the agent (runner) image for s390x, but getting the linter: unsupported architecture error similar to what you get.

Thanks.

See the two commits at Commits · isuruf/drone-yaml · GitHub
and use drone-yaml that supports ppc64le · isuruf/drone@cf99eb5 · GitHub

Thank you so much!

I’ll let you know how it goes :slight_smile:

Also hitting this issue today. If only @isuruf had already included s390x.

  • Got a s390x working, at least temporarily, on IBM LinuxONE Community Cloud.
  • Isuruf’s instructions are mostly correct but be sure to modify drone-runner-docker engine/compiler/clone.go , something like this:
func cloneImage(platform manifest.Platform) string {
	switch {
        case platform.OS == "linux" && platform.Arch == "s390x":
                return "isuruf/git:linux-s390x"
	default:
		return "drone/git:latest"
	}

Since docker buildx enables developers to build multiarch images using qemu, even without access to real hardware, it might be feasible to increase support (in the code) for these architectures, ppc64le and s390x. Toggle on or off with an environment variable.