Skip to content

Commit 7f33385

Browse files
committed
Multi build runners (arm64, amd64)
ddtrace/tracer: initialize runtimeMetricsV2 with statsd "direct" client (#3006) Co-authored-by: Felix Geisendörfer <[email protected]> Co-authored-by: Nayef Ghattas <[email protected]> fix(.github/workflows): add tags-ignore to avoid running CI on pushing tags for contribs and other nested modules (#3005) Co-authored-by: Hannah Kim <[email protected]> contrib/envoyproxy: envoy external processing support (#2895) This PR adds a new gRPC Interceptor (StreamServerInterceptor) to support the interception of ext_proc v3 calls to gRPC server. When the interceptor is applied, all messages of the external processing protocol are instrumented without returning an handle to the original server code Co-authored-by: Eliott Bouhana <[email protected]> Co-authored-by: Flavien Darche <[email protected]> add go mod to workflows/apps (#3036) go.mod: module go.opentelemetry.io/collector/pdata@latest found (v1.21.0), but does not contain package go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental (#3042) Signed-off-by: Eliott Bouhana <[email protected]> chore: update latest majors (#2993)
1 parent 4ab3308 commit 7f33385

File tree

1 file changed

+82
-17
lines changed

1 file changed

+82
-17
lines changed

.github/workflows/service-extensions-publish.yml

+82-17
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,104 @@ env:
2727
REF_NAME: ${{ github.ref || github.event.inputs.commit_sha }}
2828
COMMIT_SHA: ${{ github.sha || github.event.inputs.commit_sha }}
2929
PUSH_LATEST: ${{ github.event.inputs.set_as_latest || 'true' }}
30+
REGISTRY_IMAGE: ghcr.io/datadog/dd-trace-go/service-extensions-callout
3031

3132
jobs:
32-
publish-service-extensions:
33-
runs-on: ubuntu-latest
33+
build-service-extensions:
34+
runs-on: ${{ matrix.platform == 'linux/amd64' && 'ubuntu-latest' || 'arm-4core-linux' }}
35+
strategy:
36+
matrix:
37+
platform: [ linux/amd64, linux/arm64 ]
38+
3439
steps:
40+
- name: Prepare
41+
run: |
42+
platform=${{ matrix.platform }}
43+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
44+
3545
- name: Checkout
3646
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3747
with:
3848
ref: ${{ env.REF_NAME }}
3949

40-
- name: Set up QEMU
41-
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # V3.2.0
50+
- name: Install Docker (only arm64)
51+
if: matrix.platform == 'linux/arm64'
52+
run: |
53+
sudo apt-get update
54+
sudo apt-get install -y docker.io
55+
sudo systemctl start docker
56+
sudo systemctl enable docker
57+
sudo usermod -aG docker $USER
58+
newgrp docker
59+
sudo chmod 666 /var/run/docker.sock
4260
4361
- name: Set up Docker Buildx
44-
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
62+
uses: docker/setup-buildx-action@v3.8.0
4563

4664
- name: Login to Docker
4765
shell: bash
4866
run: docker login -u publisher -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
4967

50-
- name: Replace slashes in ref name
51-
id: replace_ref
52-
run: echo "TAG_NAME=${TAG_NAME//\//-}" >> $GITHUB_ENV
68+
- name: Docker meta
69+
id: meta
70+
uses: docker/metadata-action@v5
71+
with:
72+
images: ${{ env.REGISTRY_IMAGE }}
5373

54-
- name: Build and push
74+
- name: Build and push by digest
5575
id: build
56-
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
76+
uses: docker/build-push-action@v6
5777
with:
5878
context: .
59-
file: ./contrib/envoyproxy/envoy/cmd/serviceextensions/Dockerfile
60-
platforms: linux/amd64,linux/arm64
61-
push: true
62-
tags: |
63-
ghcr.io/datadog/dd-trace-go/service-extensions-callout:${{ env.TAG_NAME }}
64-
ghcr.io/datadog/dd-trace-go/service-extensions-callout:${{ env.COMMIT_SHA }}
65-
${{ env.PUSH_LATEST == 'true' && 'ghcr.io/datadog/dd-trace-go/service-extensions-callout:latest' }}
79+
file: ./contrib/envoyproxy/go-control-plane/cmd/serviceextensions/Dockerfile
80+
platforms: ${{ matrix.platform }}
81+
labels: ${{ steps.meta.outputs.labels }}
82+
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
83+
84+
- name: Export digest
85+
run: |
86+
mkdir -p /tmp/digests
87+
digest="${{ steps.build.outputs.digest }}"
88+
touch "/tmp/digests/${digest#sha256:}"
89+
90+
- name: Upload digest
91+
uses: actions/upload-artifact@v4
92+
with:
93+
name: digests-${{ env.PLATFORM_PAIR }}
94+
path: /tmp/digests/*
95+
if-no-files-found: error
96+
retention-days: 1
97+
98+
publish-service-extensions:
99+
runs-on: ubuntu-latest
100+
needs:
101+
- build-service-extensions
102+
103+
steps:
104+
- name: Download digests
105+
uses: actions/download-artifact@v4
106+
with:
107+
path: /tmp/digests
108+
pattern: digests-*
109+
merge-multiple: true
110+
111+
- name: Set up Docker Buildx
112+
uses: docker/[email protected]
113+
114+
- name: Login to Docker
115+
shell: bash
116+
run: docker login -u publisher -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
117+
118+
- name: Create tags
119+
id: tags
120+
run: |
121+
tagname=${TAG_NAME//\//-} # remove slashes from tag name
122+
echo "tags=-t ghcr.io/datadog/dd-trace-go/service-extensions-callout:${tagname} \
123+
-t ghcr.io/datadog/dd-trace-go/service-extensions-callout:${{ env.COMMIT_SHA }} \
124+
${{ env.PUSH_LATEST == 'true' && '-t ghcr.io/datadog/dd-trace-go/service-extensions-callout:latest' }}" >> $GITHUB_OUTPUT
125+
126+
- name: Create manifest list and push
127+
working-directory: /tmp/digests
128+
run: |
129+
docker buildx imagetools create ${{ steps.tags.outputs.tags }} \
130+
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)

0 commit comments

Comments
 (0)