From e3aba5f3735556e6b4d9e8395b9b15e3b770ef77 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 20 Nov 2025 11:16:15 +0100 Subject: [PATCH] Update workflow: separate builds for main and dev, push to lcc_tool_container --- .gitea/workflows/build.yml | 54 +++++++++++++++++++++++++++++++----- .gitea/workflows/release.yml | 43 ---------------------------- 2 files changed, 47 insertions(+), 50 deletions(-) delete mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 2ab1b00..c23d733 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -4,7 +4,9 @@ on: push: branches: - main - - develop + - dev + tags: + - 'v*' pull_request: branches: - main @@ -21,17 +23,55 @@ jobs: 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 \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc:${{ gitea.sha }} \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc:latest \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc:${{ gitea.ref_name }} \ + ${{ steps.tags.outputs.tags }} \ . - name: Push Docker images run: | - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc:${{ gitea.sha }} - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc:latest - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc:${{ gitea.ref_name }} \ No newline at end of file + 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 \ No newline at end of file diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml deleted file mode 100644 index bf32455..0000000 --- a/.gitea/workflows/release.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Build and Push Release Docker Image - -on: - push: - tags: - - 'v*.*.*' - workflow_dispatch: - -jobs: - build-and-push-release: - 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: Extract version from tag - id: version - run: | - if [ "${{ gitea.ref_type }}" == "tag" ]; then - echo "version=${{ gitea.ref_name }}" >> $GITHUB_OUTPUT - else - echo "version=manual-$(date +%Y%m%d-%H%M%S)" >> $GITHUB_OUTPUT - fi - - - name: Build Docker image - run: | - docker build \ - --build-arg BUILDKIT_INLINE_CACHE=1 \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc-release:${{ steps.version.outputs.version }} \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc-release:latest \ - -t git.avatic.de/${{ gitea.repository_owner }}/lcc:latest \ - . - - - name: Push Docker images - run: | - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc-release:${{ steps.version.outputs.version }} - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc-release:latest - docker push git.avatic.de/${{ gitea.repository_owner }}/lcc:latest \ No newline at end of file