jbboehr/laravel-blade-linter

View on GitHub
.github/workflows/docker.yml

Summary

Maintainability
Test Coverage
name: docker

on:
    schedule:
        -   cron: "0 10 * * *"
    push:
        branches:
            - "**"
        tags:
            - "v*.*.*"
    pull_request:
        branches:
            - "master"

env:
    REGISTRY: ghcr.io
    IMAGE_NAME: ${{ github.repository }}

jobs:
    publish:
        runs-on: ubuntu-latest
        permissions:
            contents: read
            packages: write
        steps:
            -   name: Checkout
                uses: actions/checkout@v3

            -   name: Docker meta
                id: meta
                uses: docker/metadata-action@v4
                with:
                    # list of Docker images to use as base name for tags
                    images: |
                        ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
                    # generate Docker tags based on the following events/attributes
                    tags: |
                        type=schedule
                        type=ref,event=branch
                        type=ref,event=pr
                        type=semver,pattern={{version}}
                        type=semver,pattern={{major}}.{{minor}}
                        type=semver,pattern={{major}}
                        type=sha

            -   name: Set up Docker Buildx
                uses: docker/setup-buildx-action@v2

            -   name: Login to GitHub Container Registry
                uses: docker/login-action@v2
                with:
                    registry: ghcr.io
                    username: ${{ github.repository_owner }}
                    password: ${{ secrets.GITHUB_TOKEN }}

            -   name: Publish to GitHub Packages
                uses: docker/build-push-action@v3
                with:
                    context: .
                    push: ${{ github.event_name != 'pull_request' }}
                    tags: ${{ steps.meta.outputs.tags }}
                    labels: ${{ steps.meta.outputs.labels }}