Files
api.konstitisyon.nu/.gitea/workflows/deploy-beta.yaml
T
cedric 8f6a0bb85a
Déploiement API BETA / Tests extensions (push) Successful in 11m5s
Déploiement API BETA / Build et déploiement beta (push) Successful in 50s
deploy: use sudo tp change ownership
2026-05-15 19:21:20 +04:00

96 lines
2.7 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-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: Committer et pousser les dist
run: |
git config user.name "Gitea Actions"
git config user.email "actions@noreply.gitea"
git add extensions/directus-extension-disallow-votes/dist \
extensions/directus-extension-new-user/dist
git diff --staged --quiet || git commit -m "chore: build extensions [skip ci]"
git push origin dev
- name: Déployer sur le serveur
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 "==> Correction des permissions"
sudo chown -R "$(whoami):" .
echo "==> Synchronisation branche dev"
git fetch origin dev
git reset --hard origin/dev
echo "==> Réseau Docker"
docker network inspect konstitisyon_network >/dev/null 2>&1 \
|| docker network create konstitisyon_network
echo "==> Initialisation base de données"
[ -f database/data.db ] || cp database/data.sample.db database/data.db
echo "==> Permissions volumes"
sudo chown -R 1000:1000 database uploads
echo "==> Démarrage Directus"
docker compose up -d
echo "==> Vérification santé"
for i in $(seq 1 12); do
if curl -sf http://localhost:8066/server/health | grep -q '"status":"ok"'; then
echo "Déploiement OK"
exit 0
fi
echo " Attente... ($i/12)"
sleep 5
done
echo "Échec : Directus ne répond pas après 60s"
exit 1