diff --git a/.github/scripts/deploy.sh b/.github/scripts/deploy.sh new file mode 100755 index 0000000..4e4de4a --- /dev/null +++ b/.github/scripts/deploy.sh @@ -0,0 +1,33 @@ +#!/bin/sh -e + +# Deploys to the production server. + +RELEASE_DIR="/home/public_html/site/releases/" +RSYNC_DIR="/home/public_html/site/latest/" +USERGUIDE_DIR="/home/public_html/userguides" +CONFIG_FILE="/home/public_html/config/.env.site" + +cd ~/ +RELEASE=`date +"%d-%m-%Y-%H-%M-%S"` + +echo $'Copy current release\n' +cd $RELEASE_DIR +cp -r ../latest ./$RELEASE + +echo $'Install composer dependencies\n' +cd $RELEASE_DIR/$RELEASE +composer install --no-dev + +echo $'Setup FS\n' +cd $RELEASE_DIR/$RELEASE +sudo chmod -R 777 writable +sudo chmod -R a+rx vendor +sudo ln -nsf $CONFIG_FILE .env + +echo $'Link current user guide\n' +sudo ln -nsf $USERGUIDE_DIR/userguide4 public/user_guide + +echo $'Set up Links\n' +cd $RELEASE_DIR +sudo ln -nsf $RELEASE_DIR/$RELEASE "../current" +sudo service php8.1-fpm reload diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bfffe30..72fa158 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,7 +21,7 @@ jobs: known_hosts: ${{ secrets.SSH_KNOWN_HOSTS }} - name: Deploy to Webserver - uses: yeshan333/rsync-deploy-action@main + uses: yeshan333/rsync-deploy-action@v1 id: rsync-deploy-action with: ssh_login_username: ${{ secrets.DEPLOY_USER }} @@ -32,40 +32,9 @@ jobs: destination_path: "/home/public_html/site/latest" - name: Finalize deployment - uses: appleboy/ssh-action@master - env: - RELEASE_DIR: "/home/public_html/site/releases/" - RSYNC_DIR: "/home/public_html/site/latest/" - USERGUIDE_DIR: "/home/public_html/userguides" - CONFIG_FILE: "/home/public_html/config/.env.site" + uses: appleboy/ssh-action@v1 with: host: ${{ secrets.DEPLOY_SSH_BOX }} username: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} - script_stop: true - envs: RELEASE_DIR,CONFIG_FILE,RSYNC_DIR,USERGUIDE_DIR - script: | - cd ~/ - RELEASE=`date +"%d-%m-%Y-%H-%M-%S"` - - echo $'Copy current release\n' - cd $RELEASE_DIR - cp -r ../latest ./$RELEASE - - echo $'Install composer dependencies\n' - cd $RELEASE_DIR/$RELEASE - composer install - - echo $'Setup FS\n' - cd $RELEASE_DIR/$RELEASE - sudo chmod -R 777 writable - sudo chmod -R a+rx vendor - sudo ln -nsf $CONFIG_FILE .env - - echo $'Link current user guide\n' - sudo ln -nsf $USERGUIDE_DIR/userguide4 public/user_guide - - echo $'Set up Links\n' - cd $RELEASE_DIR - sudo ln -nsf $RELEASE_DIR/$RELEASE "../current" - sudo service php8.1-fpm reload + script: /home/public_html/site/latest/.github/scripts/deploy.sh