name: Déploiement DEV on: push: branches: - develop workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Récupérer le dépôt uses: https://github.com/actions/checkout@v4 - name: Installer les outils run: | apt-get update apt-get install -y rsync openssh-client - name: Configurer SSH Synology env: SSH_PRIVATE_KEY: ${{ secrets.NAS_SSH_KEY }} NAS_HOST: ${{ vars.NAS_HOST }} NAS_PORT: ${{ vars.NAS_PORT }} run: | mkdir -p ~/.ssh printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan \ -p "$NAS_PORT" \ "$NAS_HOST" \ >> ~/.ssh/known_hosts chmod 600 ~/.ssh/known_hosts - name: Vérifier la destination DEV env: NAS_HOST: ${{ vars.NAS_HOST }} NAS_PORT: ${{ vars.NAS_PORT }} NAS_USER: ${{ vars.NAS_USER }} NAS_PATH: ${{ vars.NAS_PATH }} run: | ssh \ -p "$NAS_PORT" \ -i ~/.ssh/id_ed25519 \ -o IdentitiesOnly=yes \ "$NAS_USER@$NAS_HOST" \ "test -d '$NAS_PATH' && test -w '$NAS_PATH'" - name: Déployer sur le Synology env: NAS_HOST: ${{ vars.NAS_HOST }} NAS_PORT: ${{ vars.NAS_PORT }} NAS_USER: ${{ vars.NAS_USER }} NAS_PATH: ${{ vars.NAS_PATH }} run: | rsync -rz \ --no-perms \ --no-owner \ --no-group \ --omit-dir-times \ --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r \ --exclude=".git/" \ --exclude=".gitea/" \ --exclude=".env" \ --exclude="uploads/" \ --exclude="logs/" \ --exclude="storage/" \ -e "ssh -p $NAS_PORT -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes" \ ./ \ "$NAS_USER@$NAS_HOST:$NAS_PATH/"