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