--- name: Create Container on: pull_request: branches: - main paths: - 'Dockerfile' push: branches: - main paths: - 'Dockerfile' workflow_dispatch: env: IMAGE_NAME: isogenerator IMAGE_REGISTRY: "ghcr.io/${{ github.repository_owner }}" jobs: push-image: name: Build and push image runs-on: ubuntu-22.04 permissions: contents: read packages: write steps: # Checkout push-to-registry action GitHub repository - name: Checkout Push to Registry action uses: actions/checkout@v3 # Build metadata - name: Image Metadata uses: docker/metadata-action@v4 id: meta with: images: | ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }} labels: | io.artifacthub.package.readme-url=https://raw.githubusercontent.com/${{ github.repository }}/main/README.md org.opencontainers.image.description=A container image for generating Universal Blue ISO files org.opencontainers.image.title=${{ env.IMAGE_NAME }} tags: | type=ref,event=branch type=ref,event=pr # set latest tag for default branch type=raw,value=latest,enable={{is_default_branch}} - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and Push Image uses: docker/build-push-action@v4 with: context: ./ file: ./Dockerfile push: ${{ github.event_name != 'pull_request' }} labels: ${{ steps.meta.outputs.labels }} tags: ${{ steps.meta.outputs.tags }} check: name: Check build successful if: ${{ !cancelled() }} runs-on: ubuntu-latest needs: [push-image] steps: - name: Exit on failure if: ${{ needs.push-image.result == 'failure' || needs.push-image.result == 'skipped' }} shell: bash run: exit 1 - name: Exit shell: bash run: exit 0