3333 # Copy all binaries to root for consistent access
3434 cp ./binaries/radar-agent-linux/radar-agent-linux ./radar-agent-linux
3535 cp ./binaries/radar-agent-linux-musl/radar-agent-linux-musl ./radar-agent-linux-musl
36+ cp ./binaries/radar-agent-linux-arm64/radar-agent-linux-arm64 ./radar-agent-linux-arm64
37+ radar-agent-linux-arm64-musl
38+ cp ./binaries/radar-agent-linux-arm64-musl/radar-agent-linux-arm64-musl ./radar-agent-linux-arm64-musl
3639 cp ./binaries/radar-agent-darwin/radar-agent-darwin ./radar-agent-darwin
3740
3841 # Make binaries executable
5154 path : |
5255 radar-agent-linux
5356 radar-agent-linux-musl
57+ radar-agent-linux-arm64
58+ radar-agent-linux-arm64-musl
5459 radar-agent-darwin
5560 retention-days : 1
5661
6873 name : agent-binaries
6974 path : ./
7075
76+ - name : Set up QEMU
77+ uses : docker/setup-qemu-action@v3
78+
7179 - name : Set up Docker Buildx
7280 uses : docker/setup-buildx-action@v3
7381
@@ -98,33 +106,31 @@ jobs:
98106 run : |
99107 echo "tag_name=${{ github.event.client_payload.ref }}" >> $GITHUB_OUTPUT
100108
101- - name : Build and push Debian image
109+ - name : Build and push multi-platform Debian image
102110 uses : docker/build-push-action@v5
103111 with :
104112 context : .
105- file : ./docker/Dockerfile
106- build-args : |
107- BINARY=radar-agent-linux
113+ file : ./docker/Dockerfile.multiplatform
108114 push : true
109115 tags : |
116+ ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.tag.outputs.tag_name }}
117+ ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
110118 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:debian-${{ steps.tag.outputs.tag_name }}
111119 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:debian-latest
112120 labels : ${{ steps.meta.outputs.labels }}
113- platforms : linux/amd64
121+ platforms : linux/amd64,linux/arm64
114122
115- - name : Build and push Alpine image
123+ - name : Build and push multi-platform Alpine image
116124 uses : docker/build-push-action@v5
117125 with :
118126 context : .
119- file : ./docker/Dockerfile.alpine
120- build-args : |
121- BINARY=radar-agent-linux-musl
127+ file : ./docker/Dockerfile.alpine.multiplatform
122128 push : true
123129 tags : |
124130 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:alpine-${{ steps.tag.outputs.tag_name }}
125131 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:alpine-latest
126132 labels : ${{ steps.meta.outputs.labels }}
127- platforms : linux/amd64
133+ platforms : linux/amd64,linux/arm64
128134
129135 release :
130136 name : Create Release
@@ -156,7 +162,7 @@ jobs:
156162 run : |
157163 # Create and explicitly sign the tag with -s flag
158164 git tag -s ${{ steps.tag.outputs.tag_name }} -m "Release ${{ steps.tag.outputs.tag_name }}" --force
159-
165+
160166 # Push the signed tag to the repository
161167 git push origin ${{ steps.tag.outputs.tag_name }} --force
162168
@@ -168,24 +174,36 @@ jobs:
168174 files : |
169175 radar-agent-linux
170176 radar-agent-linux-musl
177+ radar-agent-linux-arm64
178+ radar-agent-linux-arm64-musl
171179 radar-agent-darwin
172180 make_latest : true
173181 body : |
174182 ## Radar Agent Release ${{ steps.tag.outputs.tag_name }}
175183
176184 ### Quick Install
177185
178- **Linux (glibc):**
186+ **Linux AMD64 (glibc):**
179187 ```bash
180188 curl -L "https://github.com/redis-field-engineering/radar-agent/releases/download/${{ steps.tag.outputs.tag_name }}/radar-agent-linux" -o radar-agent
181189 ```
182190
183- **Linux (musl):**
191+ **Linux AMD64 (musl):**
184192 ```bash
185193 curl -L "https://github.com/redis-field-engineering/radar-agent/releases/download/${{ steps.tag.outputs.tag_name }}/radar-agent-linux-musl" -o radar-agent
186194 ```
187195
188- **macOS:**
196+ **Linux ARM64 (glibc):**
197+
198+ **Linux ARM64 (musl - for Alpine):**
199+ ```bash
200+ curl -L "https://github.com/redis-field-engineering/radar-agent/releases/download/${{ steps.tag.outputs.tag_name }}/radar-agent-linux-arm64-musl" -o radar-agent
201+ ```
202+ ```bash
203+ curl -L "https://github.com/redis-field-engineering/radar-agent/releases/download/${{ steps.tag.outputs.tag_name }}/radar-agent-linux-arm64" -o radar-agent
204+ ```
205+
206+ **macOS (Apple Silicon):**
189207 ```bash
190208 curl -L "https://github.com/redis-field-engineering/radar-agent/releases/download/${{ steps.tag.outputs.tag_name }}/radar-agent-darwin" -o radar-agent
191209 ```
@@ -196,13 +214,25 @@ jobs:
196214 sudo cp radar-agent /usr/local/bin/radar-agent
197215 ```
198216
199- **Docker:**
217+ **Docker (Multi-Platform - AMD64 & ARM64) :**
200218 ```bash
201- # Alpine (recommended)
202- docker pull ghcr.io/redis-field-engineering/radar-agent:alpine-${{ steps.tag.outputs.tag_name }}
219+ # Latest (Debian-based, works on both AMD64 and ARM64)
220+ docker pull ghcr.io/redis-field-engineering/radar-agent:latest
221+
222+ # Specific version
223+ docker pull ghcr.io/redis-field-engineering/radar-agent:${{ steps.tag.outputs.tag_name }}
203224
225+ # Alpine (recommended for minimal size)
226+ docker pull ghcr.io/redis-field-engineering/radar-agent:alpine-latest
227+
204228 # Debian
205- docker pull ghcr.io/redis-field-engineering/radar-agent:debian-${{ steps.tag.outputs.tag_name }}
229+ docker pull ghcr.io/redis-field-engineering/radar-agent:debian-latest
206230 ```
231+
232+ ### Platform Support
233+
234+ - **AMD64 (x86_64)**: All binaries and Docker images
235+ - **ARM64 (aarch64)**: Native binary + multi-platform Docker images
236+ - **Apple Silicon (M1/M2/M3)**: Native macOS binary + ARM64 Docker images
207237 env :
208238 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments