Update .gitea/workflows/image-publish.yml

This commit is contained in:
2026-06-04 23:40:19 +00:00
parent 4c1bea55c2
commit 10d1e5e7e7

View File

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