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 env: APP_ENV: testing APP_KEY: base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= DB_CONNECTION: sqlite DB_DATABASE: ":memory:" with: args: | bash -c "apt-get update && apt-get install -y libicu-dev && \ docker-php-ext-configure intl && docker-php-ext-install intl && \ 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 env: REGISTRY_URL: ${{ github.server_url }} REGISTRY_USER: ${{ github.actor }} REGISTRY_TOKEN: ${{ secrets.TOKEN_GITEA }} run: | REGISTRY="${REGISTRY_URL#https://}" REGISTRY="${REGISTRY#http://}" echo "$REGISTRY_TOKEN" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin - name: Build and Push run: | # On utilise l'image du serveur Gitea REGISTRY="${{ github.server_url }}" REGISTRY="${REGISTRY#https://}" REGISTRY="${REGISTRY#http://}" IMAGE="$REGISTRY/${{ github.repository }}:latest" docker build -t "$IMAGE" . docker push "$IMAGE" deploy: name: "Déploiement Simplifié" needs: build if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: - name: Trigger Portainer Webhook run: | curl -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}"