Skip to content

Commit 5806649

Browse files
committed
Proper setup to release ebpf-profiler distro on arm64
It requires building on arm64 nodes, which are now available for free for public repositories. Signed-off-by: Douglas Camata <159076+douglascamata@users.noreply.github.com>
1 parent de52c98 commit 5806649

File tree

8 files changed

+73
-12
lines changed

8 files changed

+73
-12
lines changed

.github/workflows/base-binary-release.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,18 @@ on:
1616
type: string
1717
default: ""
1818
description: "The collector dependency will be put into this folder"
19+
runner_os:
20+
required: false
21+
type: string
22+
default: ubuntu-24.04
1923

2024
env:
2125
# renovate: datasource=github-releases depName=goreleaser/goreleaser-pro
2226
GORELEASER_PRO_VERSION: v2.11.2
2327

2428
jobs:
2529
goreleaser:
26-
runs-on: ubuntu-latest
30+
runs-on: ${{ inputs.runner_os }}
2731

2832
permissions:
2933
id-token: write

.github/workflows/base-ci-binary.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ on:
1717
type: string
1818
default: ""
1919
description: "The collector dependency will be put into this folder"
20-
20+
runner_os:
21+
required: false
22+
type: string
23+
default: ubuntu-24.04
2124

2225
env:
2326
# renovate: datasource=github-releases depName=goreleaser/goreleaser-pro
2427
GORELEASER_PRO_VERSION: v2.11.2
2528

2629
jobs:
2730
check-goreleaser:
28-
runs-on: ubuntu-latest
31+
runs-on: ${{ inputs.runner_os }}
2932
steps:
3033
- name: Checkout Releases Repo
3134
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

.github/workflows/base-ci-goreleaser.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ on:
1212
goarch:
1313
required: true
1414
type: string
15+
runner_os:
16+
required: false
17+
type: string
18+
default: ubuntu-24.04
1519
nightly:
1620
required: false
1721
type: boolean
@@ -59,7 +63,7 @@ jobs:
5963
GOARCH: riscv64
6064
- GOOS: windows
6165
GOARCH: riscv64
62-
runs-on: ubuntu-24.04
66+
runs-on: ${{ inputs.runner_os }}
6367
outputs:
6468
version: ${{ steps.prep.outputs.version }}
6569

@@ -264,7 +268,7 @@ jobs:
264268
exclude:
265269
- GOOS: darwin
266270
- GOOS: windows
267-
runs-on: ubuntu-24.04
271+
runs-on: ${{ inputs.runner_os }}
268272
steps:
269273
- name: Checkout
270274
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

.github/workflows/base-package-tests.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ on:
1414
type: boolean
1515
default: false
1616
description: "Set to true if a GH issue should be generated upon failure"
17+
runner_os:
18+
required: false
19+
type: string
20+
default: ubuntu-24.04
1721

1822
jobs:
1923
package-tests:
2024
name: Package Tests
21-
runs-on: ubuntu-22.04
25+
runs-on: ${{ inputs.runner_os }}
2226
strategy:
2327
matrix:
2428
type: ${{ fromJSON(inputs.type) }}
@@ -36,7 +40,7 @@ jobs:
3640

3741
create-issue:
3842
name: Create GitHub Issue
39-
runs-on: ubuntu-22.04
43+
runs-on: ${{ inputs.runner_os }}
4044
needs: [package-tests]
4145
if: failure() && inputs.issue-on-failure == 'true'
4246
steps:

.github/workflows/ci-goreleaser-ebpf-profiler.yaml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,26 @@ on:
2828
- "go.sum"
2929

3030
jobs:
31-
check-goreleaser:
31+
check-goreleaser-amd64:
3232
name: CI - eBPF Profiler - GoReleaser
3333
uses: ./.github/workflows/base-ci-goreleaser.yaml
3434
with:
3535
distribution: otelcol-ebpf-profiler
3636
config_file: ebpf-profiler-config.yaml
37-
docker_run_options: '--privileged --pid=host -v /sys/kernel/debug/:/sys/kernel/debug/:ro'
38-
otelcol_run_options: '--feature-gates=service.profilesSupport'
37+
docker_run_options: "--privileged --pid=host -v /sys/kernel/debug/:/sys/kernel/debug/:ro"
38+
otelcol_run_options: "--feature-gates=service.profilesSupport"
3939
goos: '[ "linux" ]'
4040
goarch: '[ "amd64" ]'
4141
secrets: inherit
42+
check-goreleaser-arm64:
43+
name: CI - eBPF Profiler - GoReleaser
44+
uses: ./.github/workflows/base-ci-goreleaser.yaml
45+
with:
46+
distribution: otelcol-ebpf-profiler
47+
config_file: ebpf-profiler-config.yaml
48+
docker_run_options: "--privileged --pid=host -v /sys/kernel/debug/:/sys/kernel/debug/:ro"
49+
otelcol_run_options: "--feature-gates=service.profilesSupport"
50+
runner_os: ubuntu-24.04-arm
51+
goos: '[ "linux" ]'
52+
goarch: '[ "arm64" ]'
53+
secrets: inherit

.github/workflows/release-ebpf-profiler.yaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
tags: ["v*"]
66

77
jobs:
8-
release:
8+
release-amd64:
99
name: Release eBPF Profiler
1010
uses: ./.github/workflows/base-release.yaml
1111
with:
@@ -15,3 +15,14 @@ jobs:
1515
nightly: ${{ contains(github.ref, '-nightly') }}
1616
secrets: inherit
1717
permissions: write-all
18+
release-arm64:
19+
name: Release eBPF Profiler
20+
uses: ./.github/workflows/base-release.yaml
21+
with:
22+
distribution: otelcol-ebpf-profiler
23+
runner_os: ubuntu-24.04-arm
24+
goos: '[ "linux" ]'
25+
goarch: '[ "arm64" ]'
26+
nightly: ${{ contains(github.ref, '-nightly') }}
27+
secrets: inherit
28+
permissions: write-all

cmd/goreleaser/internal/configure.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var (
5454
winContainerArchs = []string{"amd64"}
5555
darwinArchs = []string{"amd64", "arm64"}
5656
k8sArchs = []string{"amd64", "arm64", "ppc64le", "riscv64", "s390x"}
57-
ebpfProfilerArchs = []string{"amd64"}
57+
ebpfProfilerArchs = []string{"amd64", "arm64"}
5858
ocbArchs = []string{"amd64", "arm64", "ppc64le", "riscv64"}
5959
opAmpArchs = []string{"amd64", "arm64", "ppc64le"}
6060

distributions/otelcol-ebpf-profiler/.goreleaser.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ builds:
1414
- linux
1515
goarch:
1616
- amd64
17+
- arm64
1718
dir: _build
1819
binary: otelcol-ebpf-profiler
1920
ldflags:
@@ -46,19 +47,41 @@ dockers:
4647
- --label=org.opencontainers.image.source={{.GitURL}}
4748
- --label=org.opencontainers.image.licenses=Apache-2.0
4849
use: buildx
50+
- goos: linux
51+
goarch: arm64
52+
dockerfile: Dockerfile
53+
image_templates:
54+
- otel/opentelemetry-collector-ebpf-profiler:{{ .Version }}-arm64
55+
- otel/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
56+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Version }}-arm64
57+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
58+
build_flag_templates:
59+
- --pull
60+
- --platform=linux/arm64
61+
- --label=org.opencontainers.image.created={{.Date}}
62+
- --label=org.opencontainers.image.name={{.ProjectName}}
63+
- --label=org.opencontainers.image.revision={{.FullCommit}}
64+
- --label=org.opencontainers.image.version={{.Version}}
65+
- --label=org.opencontainers.image.source={{.GitURL}}
66+
- --label=org.opencontainers.image.licenses=Apache-2.0
67+
use: buildx
4968
docker_manifests:
5069
- name_template: otel/opentelemetry-collector-ebpf-profiler:{{ .Version }}
5170
image_templates:
5271
- otel/opentelemetry-collector-ebpf-profiler:{{ .Version }}-amd64
72+
- otel/opentelemetry-collector-ebpf-profiler:{{ .Version }}-arm64
5373
- name_template: otel/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}
5474
image_templates:
5575
- otel/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-amd64
76+
- otel/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
5677
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Version }}
5778
image_templates:
5879
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Version }}-amd64
80+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Version }}-arm64
5981
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}
6082
image_templates:
6183
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-amd64
84+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-ebpf-profiler:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
6285
signs:
6386
- cmd: cosign
6487
args:

0 commit comments

Comments
 (0)