name: Déploiement API BETA run-name: ${{ gitea.actor }} déploie API BETA on: push: branches: - dev jobs: test: name: Tests extensions runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - name: Installer les dépendances run: npm install - name: Lancer les tests run: npm test build-and-deploy: name: Build et déploiement beta needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' - name: Build directus-extension-disallow-votes working-directory: extensions/directus-extension-disallow-votes run: npm install && npm run build - name: Build directus-extension-new-user working-directory: extensions/directus-extension-new-user run: npm install && npm run build - name: Configurer la clé SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts - name: Transférer les dist via rsync run: | rsync -az --delete \ -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.SSH_PORT }}" \ extensions/directus-extension-disallow-votes/dist/ \ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEPLOY_PATH }}/extensions/directus-extension-disallow-votes/dist/ rsync -az --delete \ -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.SSH_PORT }}" \ extensions/directus-extension-new-user/dist/ \ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEPLOY_PATH }}/extensions/directus-extension-new-user/dist/ - name: Redémarrer Directus et vérifier uses: appleboy/ssh-action@v1.2.0 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USER }} key: ${{ secrets.SSH_PRIVATE_KEY }} port: ${{ secrets.SSH_PORT }} script: | set -e cd ${{ secrets.DEPLOY_PATH }} echo "==> Redémarrage Directus" docker compose restart directus echo "==> Vérification santé" sleep 5 curl -sf http://localhost:8066/server/health | grep -q '"status":"ok"' echo "Déploiement OK"