102 lines
2.9 KiB
YAML
102 lines
2.9 KiB
YAML
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:
|
|
name: Build extensions
|
|
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: Uploader les artefacts de build
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: extensions-dist
|
|
path: |
|
|
extensions/directus-extension-disallow-votes/dist
|
|
extensions/directus-extension-new-user/dist
|
|
retention-days: 1
|
|
|
|
deploy:
|
|
name: Déploiement beta
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Télécharger les artefacts de build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: extensions-dist
|
|
path: dist-artifacts
|
|
|
|
- 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 }}" \
|
|
dist-artifacts/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 }}" \
|
|
dist-artifacts/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"
|