chore: build dispatch service with other rust crates

This commit is contained in:
alyssa 2024-11-01 05:06:54 +09:00
parent e46d706d29
commit 321ba0bb3d
4 changed files with 4 additions and 50 deletions

View file

@ -1,33 +0,0 @@
name: Build and push dispatch Docker image
on:
push:
paths:
- '.github/workflows/dispatch.yml'
- 'Cargo.lock'
- 'services/dispatch/'
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
packages: write
if: github.repository == 'PluralKit/PluralKit'
steps:
- uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.CR_PAT }}
- uses: actions/checkout@v2
- run: echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" | sed 's|/|-|g' >> $GITHUB_ENV
- uses: docker/build-push-action@v2
with:
# https://github.com/docker/build-push-action/issues/378
context: .
push: true
file: services/dispatch/Dockerfile
tags: |
ghcr.io/pluralkit/dispatch:${{ github.sha }}
ghcr.io/pluralkit/dispatch:${{ env.BRANCH_NAME }}
cache-from: type=registry,ref=ghcr.io/pluralkit/pluralkit:${{ env.BRANCH_NAME }}
cache-to: type=inline

View file

@ -27,10 +27,12 @@ COPY proto/ /build/proto
# this needs to match workspaces in Cargo.toml
COPY lib/libpk /build/lib/libpk
COPY services/api/ /build/services/api
COPY services/dispatch/ /build/services/dispatch
COPY services/gateway/ /build/services/gateway
COPY services/avatars/ /build/services/avatars
RUN cargo build --bin api --release --target x86_64-unknown-linux-musl
RUN cargo build --bin dispatch --release --target x86_64-unknown-linux-musl
RUN cargo build --bin gateway --release --target x86_64-unknown-linux-musl
RUN cargo build --bin avatars --release --target x86_64-unknown-linux-musl
RUN cargo build --bin avatar_cleanup --release --target x86_64-unknown-linux-musl
@ -38,6 +40,7 @@ RUN cargo build --bin avatar_cleanup --release --target x86_64-unknown-linux-mus
FROM scratch
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/api /api
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/dispatch /dispatch
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/gateway /gateway
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/avatars /avatars
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/avatar_cleanup /avatar_cleanup

View file

@ -38,5 +38,6 @@ EOF
# add rust binaries here to build
build api
build dispatch
build gateway
build avatars "COPY .docker-bin/avatar_cleanup /bin/avatar_cleanup"

View file

@ -1,17 +0,0 @@
FROM alpine:latest AS builder
WORKDIR /build
RUN apk add rustup build-base
RUN rustup-init --default-host x86_64-unknown-linux-musl --default-toolchain nightly-2024-08-20 --profile default -y
ENV PATH=/root/.cargo/bin:$PATH
ENV RUSTFLAGS='-C link-arg=-s'
COPY . .
RUN cargo build --bin dispatch --release --target x86_64-unknown-linux-musl
FROM alpine:latest
COPY --from=builder /build/target/x86_64-unknown-linux-musl/release/dispatch /usr/local/bin/dispatch
ENTRYPOINT ["/usr/local/bin/dispatch"]