name: Build & Push Images on: push: tags: - 'v*' env: GITEA_REGISTRY: git.igmlcreation.fr GITEA_REGISTRY_USER: ietm64 GHCR_REGISTRY: ghcr.io GHCR_NAMESPACE: igmlcreation jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: component: [brain, core, web] steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Gitea Registry uses: docker/login-action@v3 with: registry: ${{ env.GITEA_REGISTRY }} username: ${{ env.GITEA_REGISTRY_USER }} password: ${{ secrets.DOCKER_PAT }} # Login to GHCR (GitHub Container Registry) pour distribuer les images # publiquement aux utilisateurs finaux. Reputation domaine plus elevee # que git.igmlcreation.fr (mieux pour les antivirus / SmartScreen). - name: Login to GHCR uses: docker/login-action@v3 with: registry: ${{ env.GHCR_REGISTRY }} username: ${{ env.GHCR_NAMESPACE }} password: ${{ secrets.GHCR_TOKEN }} - name: Extract version id: meta run: echo "version=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT # Push vers les deux registries en un seul build (build-push-action # accepte une liste de tags ; aucun build supplementaire necessaire). # Naming : # - Gitea : conserve l'ancien pattern ietm64/ pour ne pas # casser les installs existantes qui ont REGISTRY=git.igmlcreation.fr # dans leur .env. # - GHCR : nouveau pattern igmlcreation/loremind- qui evite # la collision avec d'autres projets de l'org. - name: Build & push ${{ matrix.component }} uses: docker/build-push-action@v5 with: context: ./${{ matrix.component }} push: true tags: | ${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REGISTRY_USER }}/${{ matrix.component }}:latest ${{ env.GITEA_REGISTRY }}/${{ env.GITEA_REGISTRY_USER }}/${{ matrix.component }}:${{ steps.meta.outputs.version }} ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_NAMESPACE }}/loremind-${{ matrix.component }}:latest ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_NAMESPACE }}/loremind-${{ matrix.component }}:${{ steps.meta.outputs.version }}