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