name: "Automated release" on: push: tags: - "v*" jobs: publish-docker: name: "🐳 Build and publish Docker image on ghcr.io" runs-on: ubuntu-latest steps: - name: "Checkout repository" uses: actions/checkout@v2 - name: "❓ Find the release semantic version" id: semver uses: Steffo99/actions-semver@v0.3.4 with: string: ${{ github.ref_name }} - name: "🔨 Setup Buildx" uses: docker/setup-buildx-action@v2 - name: "🔑 Login to GitHub Containers" uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: "🔽 Find the lowercase name of the repository" id: reponame uses: ASzc/change-string-case-action@v2 with: string: ${{ github.repository }} - name: "🏗 Build and push the Docker image" uses: docker/build-push-action@v3 with: tags: >- ghcr.io/${{ steps.reponame.outputs.lowercase }}:${{ steps.semver.outputs.precedence }}, ghcr.io/${{ steps.reponame.outputs.lowercase }}:${{ steps.semver.outputs.core }}, ghcr.io/${{ steps.reponame.outputs.lowercase }}:${{ steps.semver.outputs.pair }}, ghcr.io/${{ steps.reponame.outputs.lowercase }}:${{ steps.semver.outputs.major }}, ghcr.io/${{ steps.reponame.outputs.lowercase }}:latest push: true - name: "🌐 Create release" uses: ncipollo/release-action@v1.10.0 with: draft: true generateReleaseNotes: true