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/lcc_public/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