Files
dev-images/.gitea/workflows/image-publish.yml

71 lines
2.0 KiB
YAML

name: Build and Push Docker Images
on:
push:
branches:
- master
jobs:
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate tags
run: |
echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
echo "BUILD_DATE=$(date -u +'%Y%m%d-%H%M%S')" >> "$GITHUB_ENV"
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: git.harryesses.com
username: ${{ gitea.repository_owner }}
password: ${{ secrets.PACKAGE_TOKEN }}
- name: Set owner name
run: |
OWNER_NAME=$(echo "${{ gitea.repository_owner }}" | tr '[:upper:]' '[:lower:]')
echo "OWNER_NAME=$OWNER_NAME" >> "$GITHUB_ENV"
- name: Build and Push Images
run: |
set -euo pipefail
shopt -s nullglob
dockerfiles=(*.dockerfile)
if [ ${#dockerfiles[@]} -eq 0 ]; then
echo "No .dockerfile files found"
exit 1
fi
for dockerfile in "${dockerfiles[@]}"; do
image_name="${dockerfile%.dockerfile}"
image_name=$(echo "$image_name" | tr '[:upper:]' '[:lower:]')
full_image="git.harryesses.com/${OWNER_NAME}/${image_name}"
echo "========================================"
echo "Building: $full_image"
echo "Dockerfile: $dockerfile"
echo "========================================"
docker build \
-f "$dockerfile" \
-t "$full_image:latest" \
-t "$full_image:$SHORT_SHA" \
-t "$full_image:$BUILD_DATE" \
.
docker push "$full_image:latest"
docker push "$full_image:$SHORT_SHA"
docker push "$full_image:$BUILD_DATE"
done