name: Docker-Images bauen und veröffentlichen on: push: branches: [main] tags: ["v*"] env: REGISTRY: git.omsorg-pflegedienste.de IMAGE_NAMESPACE: admin/omsorg jobs: build: runs-on: ubuntu-latest strategy: matrix: include: - image: omsorgcore dockerfile: omsorgCore/Dockerfile build_args: "" - image: omsorgapp dockerfile: omsorgapp/Dockerfile build_args: "VITE_OMSORG_CORE_URL=${{ vars.OMSORG_CORE_PUBLIC_URL }}" - image: omsorgweb dockerfile: omsorgWeb/Dockerfile build_args: "" steps: - name: Code auschecken uses: actions/checkout@v4 - name: Bei Registry anmelden run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ env.REGISTRY }} -u "${{ gitea.actor }}" --password-stdin - name: Image bauen und pushen run: | BUILD_ARGS="" if [ -n "${{ matrix.build_args }}" ]; then BUILD_ARGS="--build-arg ${{ matrix.build_args }}" fi IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ matrix.image }}" TAGS="-t $IMAGE:latest -t $IMAGE:${{ gitea.sha }}" # Bei einem Tag-Push (z.B. v0.1.0) zusätzlich mit dem Tag-Namen selbst versionieren, # damit ein bestimmter Release pinnbar bleibt statt nur :latest/:. if [ "${{ gitea.ref_type }}" = "tag" ]; then TAGS="$TAGS -t $IMAGE:${{ gitea.ref_name }}" fi docker buildx build \ --push \ -f "${{ matrix.dockerfile }}" \ $TAGS \ $BUILD_ARGS \ .