laravel-starter/.gitea/workflows/deploy.yml

67 lines
1.9 KiB
YAML

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 }}"