Skip to content

Commit

Permalink
ci: dockerfile with conditional
Browse files Browse the repository at this point in the history
  • Loading branch information
Veirt committed Aug 5, 2024
1 parent 6496970 commit d5f5c98
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 53 deletions.
18 changes: 3 additions & 15 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,26 +46,14 @@ jobs:
type=semver,pattern={{major}}.{{minor}}
type=sha
- name: Build and push x86_64
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.x86_64
file: Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Build and push aarch64
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.aarch64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/arm64
platforms: linux/amd64,linux/arm64
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
23 changes: 13 additions & 10 deletions Dockerfile.aarch64 → Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,38 @@ FROM --platform=$BUILDPLATFORM oven/bun:1-alpine AS css-builder
WORKDIR /temp
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile

COPY gridPlugin.js tailwind.config.js ./
COPY src ./src
RUN bunx tailwindcss -i ./src/style.css -o ./out.css --minify

FROM --platform=$BUILDPLATFORM rust:1.80 AS build
ARG TARGETPLATFORM

RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install --no-install-recommends -y \
musl-tools \
gcc-aarch64-linux-gnu \
&& rm -rf /var/lib/apt/lists/*

RUN rustup target add aarch64-unknown-linux-musl

ENV CC_aarch64_unknown_linux_musl=aarch64-linux-gnu-gcc \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc
RUN rustup target add x86_64-unknown-linux-musl aarch64-unknown-linux-musl
RUN apt-get update && apt-get install --no-install-recommends -y \
gcc-aarch64-linux-gnu \
&& rm -rf /var/lib/apt/lists/*

# Set up the build environment
WORKDIR /usr/src
RUN USER=root cargo new --bin vesta
WORKDIR /usr/src/vesta
COPY Cargo.toml Cargo.lock ./
COPY src ./src
RUN cargo build --release --target=aarch64-unknown-linux-musl

FROM scratch
COPY docker/installer/linux linux
RUN ./$TARGETPLATFORM.sh

FROM scratch
WORKDIR /app
COPY ./static static
COPY --from=css-builder /temp/out.css ./static/style.css
COPY --from=build /usr/src/vesta/target/aarch64-unknown-linux-musl/release/vesta /app/vesta

COPY --from=build /usr/src/vesta/vesta /app/vesta


CMD ["/app/vesta"]
28 changes: 0 additions & 28 deletions Dockerfile.x86_64

This file was deleted.

9 changes: 9 additions & 0 deletions docker/installer/linux/arm64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env sh

set -eu

export CC_aarch64_unknown_linux_musl=aarch64-linux-gnu-gcc
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc
cargo build --release --target=aarch64-unknown-linux-musl

cp target/aarch64-unknown-linux-musl/release/vesta .
7 changes: 7 additions & 0 deletions docker/installer/linux/x86_64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env sh

set -eu

cargo build --release --target=x86_64-unknown-linux-musl

cp target/x86_64-unknown-linux-musl/release/vesta .

0 comments on commit d5f5c98

Please sign in to comment.