name: Laravel CI-CD (Gitea) on: push: branches: [ "main" ] jobs: test: name: "Tests Unitaires" runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Run Tests uses: docker://laravelsail/php84-composer:latest with: args: bash -c "composer install --no-interaction && php artisan test" build: name: "Build & Push Docker" needs: test if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Login to Gitea Registry uses: docker/login-action@v3 # L'action officielle est plus simple ! with: registry: ${{ github.server_url }} username: ${{ github.actor }} password: ${{ secrets.TOKEN_GITEA }} - name: Build and Push run: | # On nettoie l'URL pour Docker (enlève https://) REGISTRY_DOMAIN=$(echo "${{ github.server_url }}" | sed -e 's|https://||' -e 's|http://||') IMAGE="$REGISTRY_DOMAIN/${{ github.repository }}:latest" docker build -t "$IMAGE" . docker push "$IMAGE" deploy: name: "Déploiement Simplifié" needs: build runs-on: ubuntu-latest steps: - name: Trigger Portainer Webhook run: curl -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}"