From 5946b5eeb84d9a5e140611d40e811e560ab8cc09 Mon Sep 17 00:00:00 2001 From: Harry Esses Date: Thu, 4 Jun 2026 23:36:53 +0000 Subject: [PATCH] Add .gitea/workflows/image-publish.yml --- .gitea/workflows/image-publish.yml | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .gitea/workflows/image-publish.yml diff --git a/.gitea/workflows/image-publish.yml b/.gitea/workflows/image-publish.yml new file mode 100644 index 0000000..9760a55 --- /dev/null +++ b/.gitea/workflows/image-publish.yml @@ -0,0 +1,76 @@ +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 repository name + run: | + REPO_NAME=$(basename "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') + OWNER_NAME=$(dirname "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') + + echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV + echo "OWNER_NAME=$OWNER_NAME" >> $GITHUB_ENV + + - name: Build and Push Images + run: | + set -e + + found=0 + + for dockerfile in *.dockerfile; do + [ -f "$dockerfile" ] || continue + + found=1 + + IMAGE_VARIANT="${dockerfile%.dockerfile}" + IMAGE_NAME="git.harryesses.com/${OWNER_NAME}/${REPO_NAME}-${IMAGE_VARIANT}" + + echo "======================================" + echo "Building $IMAGE_NAME" + echo "Dockerfile: $dockerfile" + echo "======================================" + + 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 +```