PluralKit/.github/workflows/rust-docker.yml
2025-10-08 21:00:51 +00:00

48 lines
1.4 KiB
YAML

name: Build and push Rust service Docker images
on:
workflow_dispatch:
push:
paths:
- "crates/**"
- ".dockerignore"
- ".github/workflows/rust.yml"
- "ci/Dockerfile.rust"
- "ci/rust-docker-target.sh"
- "Cargo.toml"
- "Cargo.lock"
jobs:
build:
name: "rust docker build"
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- uses: docker/login-action@v1
if: ${{ !env.ACT }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.CR_PAT }}
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
# main docker build
- run: echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
- uses: docker/build-push-action@v2
with:
# https://github.com/docker/build-push-action/issues/378
context: .
file: ci/Dockerfile.rust
push: false
cache-from: type=registry,ref=ghcr.io/pluralkit/docker-cache:rust
cache-to: type=registry,ref=ghcr.io/pluralkit/docker-cache:rust,mode=max
outputs: .docker-bin
# add more binaries here
- run: |
tag=${{ github.sha }} \
branch=${{ env.BRANCH_NAME }} \
push=$([ "${{ github.repository }}" == "PluralKit/PluralKit" ] && echo true || echo false) \
ci/rust-docker-target.sh