Update .gitea/workflows/image-publish.yml
This commit is contained in:
@@ -1,27 +1,26 @@
|
||||
name: Build and Push Docker Images
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
permissions:
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
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
|
||||
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
|
||||
@@ -30,47 +29,43 @@ steps:
|
||||
username: ${{ gitea.repository_owner }}
|
||||
password: ${{ secrets.PACKAGE_TOKEN }}
|
||||
|
||||
- name: Set repository name
|
||||
- name: Set owner 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
|
||||
OWNER_NAME=$(echo "${{ gitea.repository_owner }}" | tr '[:upper:]' '[:lower:]')
|
||||
echo "OWNER_NAME=$OWNER_NAME" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Build and Push Images
|
||||
run: |
|
||||
set -e
|
||||
set -euo pipefail
|
||||
|
||||
found=0
|
||||
shopt -s nullglob
|
||||
|
||||
for dockerfile in *.dockerfile; do
|
||||
[ -f "$dockerfile" ] || continue
|
||||
dockerfiles=(*.dockerfile)
|
||||
|
||||
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"
|
||||
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
|
||||
Reference in New Issue
Block a user