Skip to content

Commit bf8002e

Browse files
authored
Add support for linux/s390x architecture (#384)
This commit enables platform support for the `linux/s390x` architecture in the CI pipeline. Signed-off-by: Bjoern Walk <[email protected]>
1 parent 3d5a87e commit bf8002e

File tree

4 files changed

+72
-6
lines changed

4 files changed

+72
-6
lines changed

.github/workflows/ci-goreleaser.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,20 @@ jobs:
2020
strategy:
2121
matrix:
2222
GOOS: [linux, windows, darwin]
23-
GOARCH: ["386", amd64, arm64, ppc64le, arm]
23+
GOARCH: ["386", amd64, arm64, ppc64le, arm, s390x]
2424
exclude:
2525
- GOOS: darwin
2626
GOARCH: "386"
27+
- GOOS: darwin
28+
GOARCH: s390x
2729
- GOOS: windows
2830
GOARCH: arm64
2931
- GOOS: darwin
3032
GOARCH: arm
3133
- GOOS: windows
3234
GOARCH: arm
35+
- GOOS: windows
36+
GOARCH: s390x
3337
runs-on: ubuntu-20.04
3438

3539
steps:
@@ -41,7 +45,7 @@ jobs:
4145
- name: Setup QEMU
4246
uses: docker/setup-qemu-action@v3
4347
with:
44-
platforms: arm64,ppc64le,linux/arm/v7
48+
platforms: arm64,ppc64le,linux/arm/v7,s390x
4549

4650
- name: Setup Docker Buildx
4751
uses: docker/setup-buildx-action@v3

.github/workflows/release.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@ jobs:
99
strategy:
1010
matrix:
1111
GOOS: [linux, windows, darwin]
12-
GOARCH: ["386", amd64, arm64, ppc64le, arm]
12+
GOARCH: ["386", amd64, arm64, ppc64le, arm, s390x]
1313
exclude:
1414
- GOOS: darwin
1515
GOARCH: "386"
16+
- GOOS: darwin
17+
GOARCH: s390x
1618
- GOOS: windows
1719
GOARCH: arm64
1820
- GOOS: darwin
1921
GOARCH: arm
2022
- GOOS: windows
2123
GOARCH: arm
24+
- GOOS: windows
25+
GOARCH: s390x
2226
runs-on: ubuntu-20.04
2327

2428
steps:
@@ -30,7 +34,7 @@ jobs:
3034

3135
- uses: docker/setup-qemu-action@v3
3236
with:
33-
platforms: arm64,ppc64le,linux/arm/v7
37+
platforms: arm64,ppc64le,linux/arm/v7,s390x
3438

3539
- uses: docker/setup-buildx-action@v3
3640

@@ -98,7 +102,7 @@ jobs:
98102

99103
- uses: docker/setup-qemu-action@v3
100104
with:
101-
platforms: arm64,ppc64le
105+
platforms: arm64,ppc64le,s390x
102106

103107
- uses: docker/setup-buildx-action@v3
104108

.goreleaser.yaml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,22 @@ builds:
1313
- arm
1414
- arm64
1515
- ppc64le
16+
- s390x
1617
goarm:
1718
- "7"
1819
ignore:
1920
- goos: darwin
2021
goarch: "386"
2122
- goos: darwin
2223
goarch: arm
24+
- goos: darwin
25+
goarch: s390x
2326
- goos: windows
2427
goarch: arm
2528
- goos: windows
2629
goarch: arm64
30+
- goos: windows
31+
goarch: s390x
2732
dir: distributions/otelcol/_build
2833
binary: otelcol
2934
ldflags:
@@ -44,17 +49,22 @@ builds:
4449
- arm
4550
- arm64
4651
- ppc64le
52+
- s390x
4753
goarm:
4854
- "7"
4955
ignore:
5056
- goos: darwin
5157
goarch: "386"
5258
- goos: darwin
5359
goarch: arm
60+
- goos: darwin
61+
goarch: s390x
5462
- goos: windows
5563
goarch: arm
5664
- goos: windows
5765
goarch: arm64
66+
- goos: windows
67+
goarch: s390x
5868
dir: distributions/otelcol-contrib/_build
5969
binary: otelcol-contrib
6070
ldflags:
@@ -221,6 +231,25 @@ dockers:
221231
- --label=org.opencontainers.image.version={{.Version}}
222232
- --label=org.opencontainers.image.source={{.GitURL}}
223233
use: buildx
234+
- goos: linux
235+
goarch: s390x
236+
dockerfile: distributions/otelcol/Dockerfile
237+
image_templates:
238+
- otel/opentelemetry-collector:{{ .Version }}-s390x
239+
- otel/opentelemetry-collector:latest-s390x
240+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-s390x
241+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-s390x
242+
extra_files:
243+
- configs/otelcol.yaml
244+
build_flag_templates:
245+
- --pull
246+
- --platform=linux/s390x
247+
- --label=org.opencontainers.image.created={{.Date}}
248+
- --label=org.opencontainers.image.name={{.ProjectName}}
249+
- --label=org.opencontainers.image.revision={{.FullCommit}}
250+
- --label=org.opencontainers.image.version={{.Version}}
251+
- --label=org.opencontainers.image.source={{.GitURL}}
252+
use: buildx
224253
- goos: linux
225254
goarch: "386"
226255
dockerfile: distributions/otelcol-contrib/Dockerfile
@@ -317,6 +346,25 @@ dockers:
317346
- --label=org.opencontainers.image.version={{.Version}}
318347
- --label=org.opencontainers.image.source={{.GitURL}}
319348
use: buildx
349+
- goos: linux
350+
goarch: s390x
351+
dockerfile: distributions/otelcol-contrib/Dockerfile
352+
image_templates:
353+
- otel/opentelemetry-collector-contrib:{{ .Version }}-s390x
354+
- otel/opentelemetry-collector-contrib:latest-s390x
355+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-s390x
356+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-s390x
357+
extra_files:
358+
- configs/otelcol-contrib.yaml
359+
build_flag_templates:
360+
- --pull
361+
- --platform=linux/s390x
362+
- --label=org.opencontainers.image.created={{.Date}}
363+
- --label=org.opencontainers.image.name={{.ProjectName}}
364+
- --label=org.opencontainers.image.revision={{.FullCommit}}
365+
- --label=org.opencontainers.image.version={{.Version}}
366+
- --label=org.opencontainers.image.source={{.GitURL}}
367+
use: buildx
320368
docker_manifests:
321369
- name_template: otel/opentelemetry-collector:{{ .Version }}
322370
image_templates:
@@ -325,52 +373,60 @@ docker_manifests:
325373
- otel/opentelemetry-collector:{{ .Version }}-armv7
326374
- otel/opentelemetry-collector:{{ .Version }}-arm64
327375
- otel/opentelemetry-collector:{{ .Version }}-ppc64le
376+
- otel/opentelemetry-collector:{{ .Version }}-s390x
328377
- name_template: otel/opentelemetry-collector:latest
329378
image_templates:
330379
- otel/opentelemetry-collector:latest-386
331380
- otel/opentelemetry-collector:latest-amd64
332381
- otel/opentelemetry-collector:latest-armv7
333382
- otel/opentelemetry-collector:latest-arm64
334383
- otel/opentelemetry-collector:latest-ppc64le
384+
- otel/opentelemetry-collector:latest-s390x
335385
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}
336386
image_templates:
337387
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-386
338388
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-amd64
339389
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-armv7
340390
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-arm64
341391
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-ppc64le
392+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:{{ .Version }}-s390x
342393
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest
343394
image_templates:
344395
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-386
345396
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-amd64
346397
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-armv7
347398
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-arm64
348399
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-ppc64le
400+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:latest-s390x
349401
- name_template: otel/opentelemetry-collector-contrib:{{ .Version }}
350402
image_templates:
351403
- otel/opentelemetry-collector-contrib:{{ .Version }}-386
352404
- otel/opentelemetry-collector-contrib:{{ .Version }}-amd64
353405
- otel/opentelemetry-collector-contrib:{{ .Version }}-armv7
354406
- otel/opentelemetry-collector-contrib:{{ .Version }}-arm64
355407
- otel/opentelemetry-collector-contrib:{{ .Version }}-ppc64le
408+
- otel/opentelemetry-collector-contrib:{{ .Version }}-s390x
356409
- name_template: otel/opentelemetry-collector-contrib:latest
357410
image_templates:
358411
- otel/opentelemetry-collector-contrib:latest-386
359412
- otel/opentelemetry-collector-contrib:latest-amd64
360413
- otel/opentelemetry-collector-contrib:latest-armv7
361414
- otel/opentelemetry-collector-contrib:latest-arm64
362415
- otel/opentelemetry-collector-contrib:latest-ppc64le
416+
- otel/opentelemetry-collector-contrib:latest-s390x
363417
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}
364418
image_templates:
365419
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-386
366420
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-amd64
367421
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-armv7
368422
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-arm64
369423
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-ppc64le
424+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:{{ .Version }}-s390x
370425
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest
371426
image_templates:
372427
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-386
373428
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-amd64
374429
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-armv7
375430
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-arm64
376431
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-ppc64le
432+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest-s390x

cmd/goreleaser/internal/configure.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const ArmArch = "arm"
3232

3333
var (
3434
ImagePrefixes = []string{"otel", "ghcr.io/open-telemetry/opentelemetry-collector-releases"}
35-
Architectures = []string{"386", "amd64", "arm", "arm64", "ppc64le"}
35+
Architectures = []string{"386", "amd64", "arm", "arm64", "ppc64le", "s390x"}
3636
ArmVersions = []string{"7"}
3737
)
3838

@@ -76,8 +76,10 @@ func Build(dist string) config.Build {
7676
Ignore: []config.IgnoredBuild{
7777
{Goos: "darwin", Goarch: "386"},
7878
{Goos: "darwin", Goarch: "arm"},
79+
{Goos: "darwin", Goarch: "s390x"},
7980
{Goos: "windows", Goarch: "arm"},
8081
{Goos: "windows", Goarch: "arm64"},
82+
{Goos: "windows", Goarch: "s390x"},
8183
},
8284
}
8385
}

0 commit comments

Comments
 (0)