--- name: build-ublue-custom on: pull_request: branches: - main schedule: - cron: '05 10 * * *' # 10:05am UTC everyday push: branches: - main paths-ignore: - '**/README.md' workflow_dispatch: env: MY_IMAGE_NAME: "${{ gitea.event.repository.name }}" # the name of the image produced by this build, matches repo names MY_IMAGE_DESC: "My Customized Universal Blue Image" jobs: build_push: name: Build and push image runs-on: ubuntu-latest permissions: contents: read packages: write id-token: write steps: - name: Install docker run: apt update && apt install -y docker.io - name: Checkout uses: https://github.com/actions/checkout@v3 - name: Set up QEMU uses: https://github.com/docker/setup-qemu-action@v3 with: platforms: amd64 - name: Set up Docker Buildx uses: https://github.com/docker/setup-buildx-action@v3 # Build metadata - name: Image Metadata uses: https://github.com/docker/metadata-action@v5 id: meta with: images: | ${{ env.MY_IMAGE_NAME }} labels: | io.artifacthub.package.readme-url=https://gitea.mrdev023.fr/${{ gitea.repository }}/raw/branch/main/README.md org.opencontainers.image.description=${{ env.MY_IMAGE_DESC }} org.opencontainers.image.title=${{ env.MY_IMAGE_NAME }} - name: Login to Container Registry uses: https://github.com/docker/login-action@v3 with: registry: gitea.mrdev023.fr username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} # Build and push image using Docker Build and Push action - name: Build and Push Image uses: https://github.com/docker/build-push-action@v5 with: context: . file: ./Containerfile push: true tags: gitea.mrdev023.fr/florian.richer/${{ env.MY_IMAGE_NAME }}:latest # This section is optional and only needs to be enabled if you plan on distributing # your project for others to consume. You will need to create a public and private key # using Cosign and save the private key as a repository secret in Github for this workflow # to consume. For more details, review the image signing section of the README. # Sign container - name: Install cosign uses: https://github.com/sigstore/cosign-installer@v3.5.0 if: gitea.event_name != 'pull_request' - name: Sign container image if: gitea.event_name != 'pull_request' run: | cosign sign -y --key env://COSIGN_PRIVATE_KEY ${{ steps.registry_case.outputs.lowercase }}/${{ steps.build_image.outputs.image }}@${TAGS} env: TAGS: ${{ steps.push.outputs.digest }} COSIGN_EXPERIMENTAL: false COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }}