diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index a976b6d..2d70d86 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -16,7 +16,7 @@ jobs: - name: Deploy to server via rsync uses: Burnett01/rsync-deployments@5.2 with: - switches: -avzr --delete --exclude-from='.gitignore' --exclude='/config/nginx/conf.d/custom.conf' + switches: -avzr --checksum --delete --exclude-from='.gitignore' --exclude='/config/nginx/conf.d/custom.conf' path: ./ remote_path: ${{ secrets.PROD_REMOTE_PATH }} remote_host: ${{ secrets.PROD_HOST }} @@ -24,6 +24,44 @@ jobs: remote_key: ${{ secrets.PROD_KEY }} remote_key_pass: ${{ secrets.PROD_KEY_PASS }} + - name: Generate version and minify on server + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.PROD_HOST }} + username: ${{ secrets.PROD_USER }} + key: ${{ secrets.PROD_KEY }} + passphrase: ${{ secrets.PROD_KEY_PASS }} + script: | + TIMESTAMP=$(date +%Y%m%d%H%M) + echo "{\"version\":\"$TIMESTAMP\"}" > ${{ secrets.PROD_REMOTE_PATH }}/www/frontend/custom_theme/css/version.json + echo "{\"version\":\"$TIMESTAMP\"}" > ${{ secrets.PROD_REMOTE_PATH }}/www/frontend/custom_theme/js/version.json + + docker run --rm \ + -v ${{ secrets.PROD_REMOTE_PATH }}/www:/www \ + node:18 sh -c "npm install -g csso-cli && \ + csso /www/frontend/custom_theme/css/styles.css --output /www/frontend/custom_theme/css/styles.min.css" + + docker run --rm \ + -v ${{ secrets.PROD_REMOTE_PATH }}/www:/www \ + node:18 sh -c "npm install -g terser && \ + terser /www/frontend/custom_theme/js/scripts.js --compress --mangle --output /www/frontend/custom_theme/js/scripts.min.js" + + - name: Run Flyway Migrations core + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.PROD_HOST }} + username: ${{ secrets.PROD_USER }} + key: ${{ secrets.PROD_KEY }} + passphrase: ${{ secrets.PROD_KEY_PASS }} + script: | + docker run --rm \ + --network npm_network \ + --volume ${{ secrets.PROD_REMOTE_PATH }}/config/db/core:/flyway/core:ro \ + -e FLYWAY_URL="${{ secrets.PROD_DB_URL }}" \ + -e FLYWAY_USER="${{ secrets.PROD_DB_USER }}" \ + -e FLYWAY_PASSWORD="${{ secrets.PROD_DB_PASSWORD }}" \ + flyway/flyway -locations=filesystem:/flyway/core -table=flyway_core migrate + - name: Run Flyway Migrations core uses: appleboy/ssh-action@v1.0.3 with: @@ -54,4 +92,5 @@ jobs: -e FLYWAY_URL="${{ secrets.PROD_DB_URL }}" \ -e FLYWAY_USER="${{ secrets.PROD_DB_USER }}" \ -e FLYWAY_PASSWORD="${{ secrets.PROD_DB_PASSWORD }}" \ - flyway/flyway -locations=filesystem:/flyway/myapp -table=flyway_myapp migrate \ No newline at end of file + flyway/flyway -locations=filesystem:/flyway/myapp -table=flyway_myapp migrate + diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 8081390..f1152c7 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -16,7 +16,7 @@ jobs: - name: Deploy to server via rsync uses: Burnett01/rsync-deployments@5.2 with: - switches: -avzr --delete --exclude-from='.gitignore' --exclude='/config/nginx/conf.d/custom.conf' + switches: -avzr --checksum --delete --exclude-from='.gitignore' --exclude='/config/nginx/conf.d/custom.conf' path: ./ remote_path: ${{ secrets.STAGING_REMOTE_PATH }} remote_host: ${{ secrets.STAGING_HOST }}