diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6adc1dd..277cef7 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,33 +1,49 @@ name: Docker on: - workflow_dispatch: - push: - branches: - - main # default branch - paths: - - bot/** + workflow_dispatch: + push: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} jobs: - Ghcr: - name: Publish to ghcr.io + build-and-push-image: runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + attestations: write + id-token: write + steps: - - uses: actions/checkout@v4.2.2 + - uses: actions/checkout@v4 + - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3.8.0 + - name: Login uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + - name: Build & Push - uses: docker/build-push-action@v6.11.0 + uses: docker/build-push-action@v6 with: context: . - push: true - tags: ghcr.io/purofle/sbbot:latest + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 - cache-from: type=registry,ref=ghcr.io/purofle/sbbot:latest - cache-to: type=inline + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file