From 50a8dc873cf9a2dbf41f5eae2bee29a9eb00451c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Guillaume?= Date: Tue, 9 Jan 2024 11:20:00 +0100 Subject: [PATCH] feat: add ftp backup database github workflow --- backup-ftp-database.yml | 40 ++++++++++++++++++++++++++++++++++++++++ nuxtjs3/deploy-vps.yml | 6 +++--- 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 backup-ftp-database.yml diff --git a/backup-ftp-database.yml b/backup-ftp-database.yml new file mode 100644 index 0000000..8b7a184 --- /dev/null +++ b/backup-ftp-database.yml @@ -0,0 +1,40 @@ +name: Backup MariaDB Database FTP +on: + schedule: + - cron: '0 */12 * * *' # Run every 12 hours, backup at 00:00 and 12:00 each day + workflow_dispatch: + + jobs: + backup_database: + runs-on: self-hosted + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install MariaDB Client and Gzip + run: sudo apt-get update && sudo apt-get install -y gzip mariadb-client + + - name: MySQLDump - Connect Database and Backup MariaDB Database FTP + run: | + mkdir backup_database && cd backup_database + FILENAME="database_${{ secrets.DATABASE_DB_NAME }}_backup-$(date +%d-%m-%Y-%H-%M-%S).sql.gz" + mysqldump \ + --host='${{ secrets.DATABASE_HOST }}' \ + --user='${{ secrets.DATABASE_USERNAME }}' \ + --password='${{ secrets.DATABASE_PASSWORD }}' \ + --databases ${{ secrets.DATABASE_DB_NAME }} | gzip > $FILENAME + + - name: Set the current date and time + run: echo "CURRENT_DATETIME=$(date +%d-%m-%Y-%H-%M-%S)" >> $GITHUB_ENV + + - name: Deploy backup .sql to FTP + uses: SamKirkland/FTP-Deploy-Action@v4.3.4 + with: + server: ${{ secrets.SERVER_FTP_HOST }} + username: ${{ secrets.SERVER_FTP_USERNAME }} + password: ${{ secrets.SERVER_FTP_PASSWORD }} + port: ${{ secrets.SERVER_FTP_PORT }} + protocol: ftp + local-dir: ./backup_databases/ + server-dir: backup_databases/ + state-name: .ftp-deploy-sync-state-${{ secrets.DATABASE_DB_NAME }}-${{ env.CURRENT_DATETIME }}.json diff --git a/nuxtjs3/deploy-vps.yml b/nuxtjs3/deploy-vps.yml index 7634ac9..1888c0a 100644 --- a/nuxtjs3/deploy-vps.yml +++ b/nuxtjs3/deploy-vps.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - name: 📥 Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: ⚙️ Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -59,4 +59,4 @@ jobs: script: | cd /var/www/dibodev.com/html/.output npm install - pm2 restart dibodev.com || pm2 start server.js --name dibodev.com \ No newline at end of file + pm2 restart dibodev.com || pm2 start server.js --name dibodev.com