buildah-build/.forgejo/workflows/docker_metadata_action.yml
phil 27925d2c1c
All checks were successful
Check Case Normalization / Build image using Buildah (push) Successful in 4s
Build from containerfile / Build image using Buildah (push) Successful in 4s
Build with docker/metadata-action / Build image with Containerfile (push) Successful in 4s
Rename .gothub to .forgejo
2024-10-25 04:44:17 +02:00

185 lines
6.2 KiB
YAML

# This workflow will perform a test whenever there
# is some change in code done to ensure that the changes
# are not buggy and we are getting the desired output.
name: Build with docker/metadata-action
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # every day at midnight
jobs:
build-containerfile:
name: Build image with Containerfile
runs-on: container
strategy:
fail-fast: false
matrix:
install_latest: [ false ]
env:
IMAGE_NAME: "hello-world"
steps:
# Checkout buildah action github repository
- name: Checkout Buildah action
uses: actions/checkout@v4
- name: Docker Metadata
id: docker-metadata
uses: docker/metadata-action@v4
with:
images: |
${{ env.IMAGE_NAME }}
tags: |
type=edge
type=sha
type=ref,event=branch
type=ref,event=pr
type=schedule
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
- name: Install latest buildah
if: matrix.install_latest
run: |
bash .github/install_latest_buildah.sh
- name: Create Dockerfile
run: |
cat > Containerfile<<EOF
FROM busybox
RUN echo "hello world"
EOF
# Build image using Buildah action
- name: Build Image
id: build_image
uses: ./
with:
layers: false
tags: ${{ steps.docker-metadata.outputs.tags }}
labels: ${{ steps.docker-metadata.outputs.labels }}
containerfiles: |
./Containerfile
extra-args: |
--pull
- name: Echo Outputs
run: |
echo "Image: ${{ steps.build_image.outputs.image }}"
echo "Tags: ${{ steps.build_image.outputs.tags }}"
echo "Tagged Image: ${{ steps.build_image.outputs.image-with-tag }}"
# Check if image is build
- name: Check images created
run: buildah images | grep '${{ env.IMAGE_NAME }}'
- name: Check image metadata
run: |
set -x
buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.OCIv1.config.Labels."org.opencontainers.image.title"'
buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.OCIv1.config.Labels."org.opencontainers.image.description"'
buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.Docker.config.Labels."org.opencontainers.image.title"'
buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.Docker.config.Labels."org.opencontainers.image.description"'
# build-scratch:
# name: Build image without Containerfile
# runs-on: container
# strategy:
# fail-fast: false
# matrix:
# install_latest: [ false ]
#
# env:
# PROJECT_DIR: spring-petclinic
# IMAGE_NAME: spring-petclinic
# MVN_REPO_DIR: ~/.m2/repository
#
# steps:
#
# # Checkout buildah action github repository
# - name: Checkout Buildah action
# uses: actions/checkout@v4
#
# - name: Docker Metadata
# id: docker-metadata
# uses: docker/metadata-action@v4
# with:
# images: |
# ${{ env.IMAGE_NAME }}
# tags: |
# type=edge
# type=sha
# type=ref,event=branch
# type=ref,event=pr
# type=schedule
# type=semver,pattern={{version}}
# type=semver,pattern={{major}}.{{minor}}
# type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
#
# - name: Install latest buildah
# if: matrix.install_latest
# run: |
# bash .github/install_latest_buildah.sh
#
# # Checkout spring-petclinic github repository
# - name: Checkout spring-petclinic project
# uses: actions/checkout@v4
# with:
# repository: "spring-projects/spring-petclinic"
# path: ${{ env.PROJECT_DIR }}
#
# # Setup java.
# - name: Setup Java
# uses: actions/setup-java@v3
# with:
# distribution: 'temurin'
# java-version: '17'
# cache: 'maven'
#
# # Run maven to build the project
# - name: Maven
# working-directory: ${{ env.PROJECT_DIR }}
# run: |
# mvn package -ntp -B
#
# # Build image using Buildah action
# - name: Build Image
# id: build_image
# uses: ./
# with:
# tags: ${{ steps.docker-metadata.outputs.tags }}
# labels: ${{ steps.docker-metadata.outputs.labels }}
# base-image: 'registry.access.redhat.com/openjdk/openjdk-11-rhel7'
# # To avoid hardcoding a particular version of the binary.
# content: |
# ./spring-petclinic/target/spring-petclinic-*.jar
# entrypoint: |
# java
# -jar
# spring-petclinic-*.jar
# port: 8080
# arch: amd64
# workdir: "."
#
# - name: Echo Outputs
# run: |
# echo "Image: ${{ steps.build_image.outputs.image }}"
# echo "Tags: ${{ steps.build_image.outputs.tags }}"
# echo "Tagged Image: ${{ steps.build_image.outputs.image-with-tag }}"
#
# # Check if image is build
# - name: Check images created
# run: buildah images | grep '${{ env.IMAGE_NAME }}'
#
# - name: Check image metadata
# run: |
# set -x
# buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.OCIv1.config.Labels."org.opencontainers.image.title"'
# buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.OCIv1.config.Labels."org.opencontainers.image.description"'
# buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.Docker.config.Labels."org.opencontainers.image.title"'
# buildah inspect ${{ steps.build_image.outputs.image-with-tag }} | jq '.Docker.config.Labels."org.opencontainers.image.description"'