build github action

Signed-off-by: Alexey Aristov <aav@acm.org>
This commit is contained in:
Alexey Aristov
2025-09-08 08:15:26 +02:00
parent bb362c3ee5
commit d8e1e375bc
3 changed files with 65 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
name: Build and Push
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log to registry
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKER_USER }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
- run: echo VERSION=$(grep '^version =' server/Cargo.toml | cut -d '"' -f 2) >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and Push
uses: docker/build-push-action@v6
with:
file: server/Dockerfile
push: true
tags: "${{ vars.DOCKER_USER }}/service_hulylake:latest"
platforms: linux/amd64,linux/arm64
+2
View File
@@ -0,0 +1,2 @@
image:
cd server && docker buildx build --tag=hardcoreeng/hulylake:latest --platform=linux/amd64 --load .
+32
View File
@@ -0,0 +1,32 @@
FROM --platform=$BUILDPLATFORM rust:1.88 AS builder
ARG TARGETPLATFORM
WORKDIR /tmp/build
COPY . .
RUN \
if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
cargo build --release --target=x86_64-unknown-linux-gnu ; \
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
apt-get update && apt-get install -y \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu \
libc6-dev-arm64-cross \
&& rm -rf /var/lib/apt/lists/* ; \
rustup target add aarch64-unknown-linux-gnu ; \
export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc ; \
export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ ; \
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc ; \
cargo build --release --target=aarch64-unknown-linux-gnu ; \
else \
echo "Unexpected target platform: $TARGETPLATFORM" && exit 1 ; \
fi
FROM debian:12-slim
ARG TARGET
COPY --from=builder /tmp/build/target/*/release/hulylake /usr/local/bin/hulylake
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/local/bin/hulykvs"]