name: Deployment Pipeline on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup SSH env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} run: | mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ssh-keyscan git.raphix.fr >> ~/.ssh/known_hosts - name: Deploy Subsonics as gitlab-ci run: | ssh -A -o StrictHostKeyChecking=no raphix@alpha.raphix.fr << 'EOF' sudo -E -u gitlab-ci bash << 'INNER_EOF' set -e # Variables PM2 et npm export PM2_HOME=/home/gitlab-ci/.pm2 export NPM_CONFIG_CACHE=/home/gitlab-ci/.npm mkdir -p $PM2_HOME $NPM_CONFIG_CACHE chown -R gitlab-ci:gitlab-ci $PM2_HOME $NPM_CONFIG_CACHE echo "[Subsonics-Deploy] - Stage - Déploiement - START" echo "[Subsonics-Deploy] - Arrêt de Subsonics : Processing" cd /home/gitlab-ci pm2 stop "Subsonics - Backend" || true pm2 delete "Subsonics - Backend" || true echo "[Subsonics-Deploy] - Arrêt de Subsonics : Success" # Préparer tempdata if [ ! -d "/home/gitlab-ci/backend/data" ]; then mkdir -p /home/gitlab-ci/backend/data fi mv /home/gitlab-ci/backend/data/ /home/gitlab-ci/tempdata || true echo "[Subsonics-Deploy] - Suppression de Subsonics : Processing" rm -rf ./backend echo "[Subsonics-Deploy] - Suppression de Subsonics : Success" echo "[Subsonics-Deploy] - Installation de Subsonics : Processing" git clone https://git.raphix.fr/subsonics/chopin backend echo "[Subsonics-Deploy] - Installation de Subsonics : Success" echo "[Subsonics-Deploy] - Installation des dépendances : Processing" cd /home/gitlab-ci/backend # Nettoyage node_modules et tempdata rm -rf node_modules if [ -d "/home/gitlab-ci/tempdata" ]; then mv /home/gitlab-ci/tempdata/ ./data fi # Assurer la propriété gitlab-ci chown -R gitlab-ci:gitlab-ci /home/gitlab-ci/backend mkdir -p $NPM_CONFIG_CACHE chown -R gitlab-ci:gitlab-ci $NPM_CONFIG_CACHE npm install --omit=dev echo "[Subsonics-Deploy] - Installation des dépendances : Success" echo "[Subsonics-Deploy] - Démarrage de Subsonics : Processing" cd /home/gitlab-ci pm2 start subsonic.config.js echo "[Subsonics-Deploy] - Démarrage de Subsonics : Success" echo "[Subsonics-Deploy] - Stage - Déploiement - END" INNER_EOF EOF