From 863c14120adb15a18de3814b643f5e38ba3d9af4 Mon Sep 17 00:00:00 2001 From: Helios Agent Date: Sat, 28 Mar 2026 13:48:39 +0100 Subject: [PATCH] Add CI/CD: multi-arch Docker build workflow --- .forgejo/workflows/build.yaml | 33 +++++++++++++++++++++++++++++++++ Dockerfile | 21 +++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 .forgejo/workflows/build.yaml create mode 100644 Dockerfile diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..4dd5d41 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,33 @@ +name: Build & Push Docker Image + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Forgejo Registry + uses: docker/login-action@v3 + with: + registry: git.moritz.run + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64 + tags: git.moritz.run/helios/helios-remote:latest + cache-from: type=registry,ref=git.moritz.run/helios/helios-remote:cache + cache-to: type=registry,ref=git.moritz.run/helios/helios-remote:cache,mode=max diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5d70a63 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# Build stage +FROM rust:1.82-alpine AS builder + +RUN apk add --no-cache musl-dev + +WORKDIR /app +COPY . . + +RUN cargo build --release --bin helios-remote-relay + +# Runtime stage +FROM alpine:3.20 + +RUN apk add --no-cache ca-certificates + +WORKDIR /app +COPY --from=builder /app/target/release/helios-remote-relay . + +EXPOSE 8080 + +CMD ["./helios-remote-relay"]