name: Deploy to VM Prod on: push: branches: - main jobs: deploy: runs-on: self-hosted steps: - name: Checkout repository uses: actions/checkout@v3 - name: Deploy to production run: | REPO_NAME=${{ github.event.repository.name }} ENV_CONTENT="${{ secrets.ENV_FILE || '' }}" ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} bash -s << 'EOF' REPO_NAME='"$REPO_NAME"' ENV_CONTENT='"$ENV_CONTENT"' mkdir -p /srv/$REPO_NAME cd /srv/$REPO_NAME # Supprime tout si le repo n'existe pas encore if [ ! -d .git ]; then rm -rf ./* git clone https://github.com/arthur-pbty-labs/$REPO_NAME . else git reset --hard git pull origin main fi # Crée .env seulement si contenu non vide if [ -n "$ENV_CONTENT" ]; then echo "$ENV_CONTENT" > .env fi docker compose up -d --build EOF