# # # Publish docker workflow for all modules of captica.expert # # Project: workflows # Author: Marc Böhm # License: MIT License (see LICENSE.md) # # Copyright (c) captica GmbH est. 2021 # name: Publish docker workflow for captica.expert modules on: workflow_call: jobs: publish_docker: name: Build and publish docker image runs-on: docker-ubuntu steps: - name: Checkout source code uses: actions/checkout@v4 with: token: ${{ secrets.GIT_ACCESS_TOKEN }} submodules: 'true' fetch-depth: 0 - name: Setup java runtime uses: actions/setup-java@v6 env: RUNNER_TOOL_CACHE: /tmp/hostedtoolcache with: distribution: 'zulu' java-version: ${{ vars.JAVA_VERSION }} - name: Build application jar run: ./gradlew bootJar - name: Setup docker buildx environment uses: docker/setup-buildx-action@v3 - name: Login to docker registry uses: docker/login-action@v3 with: registry: ${{ vars.CONTAINER_REGISTRY_URL }} username: ${{ vars.CONTAINER_REGISTRY_USERNAME }} password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - name: Setup environment variables from "build/env-setup.sh" run: | source build/env-setup.sh - name: Build and push docker image uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile push: true tags: | ${{ vars.CONTAINER_REGISTRY_URL }}/${{ gitea.repository }}:${{ env.CAPTICA_APPLICATION_VERSION }} ${{ vars.CONTAINER_REGISTRY_URL }}/${{ gitea.repository }}:${{ gitea.sha }} ${{ vars.CONTAINER_REGISTRY_URL }}/${{ gitea.repository }}:latest build-args: | FILE_BINARY=${{ env.CAPTICA_APPLICATION_FILE_BINARY }} NAME_APPLICATION=${{ env.CAPTICA_APPLICATION_NAME }} PORT_EXPOSURE=${{ env.CAPTICA_APPLICATION_PORT }} JAVA_VERSION=${{ env.CAPTICA_APPLICATION_JAVA_VERSION }}