name: Build and Push Docker Image on: push: branches: - main - master tags: - 'v*.*.*' jobs: build-and-push: runs-on: [serveur-dell-ubuntu-latest] # Ou le label de votre runner (ex: ubuntu-latest, act-runner, etc.) steps: - name: Checkout du code uses: actions/checkout@v4 - name: Extraction du nom de domaine du registre et du nom du dépôt id: prep run: | # Extrait le nom de domaine de Gitea (supprime http:// ou https://) REGISTRY_HOST=$(echo "${{ gitea.server_url }}" | sed -e 's|^https://||' -e 's|^http://||' -e 's|/.*||') echo "registry=${REGISTRY_HOST}" >> $GITHUB_OUTPUT # Convertit le nom du dépôt en minuscules (exigence de Docker pour les tags) REPO_LOWER=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]') echo "repo_lower=${REPO_LOWER}" >> $GITHUB_OUTPUT - name: Connexion au Registre de Conteneurs Gitea uses: docker/login-action@v3 with: registry: ${{ steps.prep.outputs.registry }} username: ${{ gitea.actor }} password: ${{ gitea.token }} - name: Configuration de Docker Buildx uses: docker/setup-buildx-action@v3 - name: Génération automatique des tags et métadonnées id: meta uses: docker/metadata-action@v5 with: images: ${{ steps.prep.outputs.registry }}/${{ steps.prep.outputs.repo_lower }} tags: | type=ref,event=branch type=semver,pattern={{version}} type=sha,prefix=git- type=raw,value=latest,enable=${{ gitea.ref == 'refs/heads/main' || gitea.ref == 'refs/heads/master' }} - name: Construction et publication de l'image Docker uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}