77 lines
No EOL
2.2 KiB
YAML
77 lines
No EOL
2.2 KiB
YAML
name: Build and Push Docker Image
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- dev
|
|
tags:
|
|
- 'v*'
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Gitea Container Registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.avatic.de -u "${{ gitea.actor }}" --password-stdin
|
|
|
|
- name: Prepare Docker tags
|
|
id: tags
|
|
run: |
|
|
IMAGE_BASE="git.avatic.de/avatic/lcc_tool_container/lcc"
|
|
TAGS=""
|
|
|
|
# SHA tag (immer)
|
|
TAGS="${TAGS} -t ${IMAGE_BASE}:${{ gitea.sha }}"
|
|
|
|
# Branch-spezifische Tags
|
|
if [ "${{ gitea.ref_name }}" = "main" ]; then
|
|
TAGS="${TAGS} -t ${IMAGE_BASE}:latest"
|
|
TAGS="${TAGS} -t ${IMAGE_BASE}:main"
|
|
elif [ "${{ gitea.ref_name }}" = "dev" ]; then
|
|
TAGS="${TAGS} -t ${IMAGE_BASE}:dev"
|
|
fi
|
|
|
|
# Release-Tag (wenn es ein Tag ist)
|
|
if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then
|
|
VERSION="${{ gitea.ref_name }}"
|
|
TAGS="${TAGS} -t ${IMAGE_BASE}:${VERSION}"
|
|
fi
|
|
|
|
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
|
|
echo "image_base=${IMAGE_BASE}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Build Docker image
|
|
run: |
|
|
docker build \
|
|
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
${{ steps.tags.outputs.tags }} \
|
|
.
|
|
|
|
- name: Push Docker images
|
|
run: |
|
|
IMAGE_BASE="${{ steps.tags.outputs.image_base }}"
|
|
|
|
# Push SHA (immer)
|
|
docker push ${IMAGE_BASE}:${{ gitea.sha }}
|
|
|
|
# Push branch-spezifische Tags
|
|
if [ "${{ gitea.ref_name }}" = "main" ]; then
|
|
docker push ${IMAGE_BASE}:latest
|
|
docker push ${IMAGE_BASE}:main
|
|
elif [ "${{ gitea.ref_name }}" = "dev" ]; then
|
|
docker push ${IMAGE_BASE}:dev
|
|
fi
|
|
|
|
# Push Release-Tag (wenn vorhanden)
|
|
if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then
|
|
docker push ${IMAGE_BASE}:${{ gitea.ref_name }}
|
|
fi |