name: Hugo CI/CD on: push: branches: [ main ] pull_request: branches: [ main ] permissions: contents: read pages: write id-token: write concurrency: group: 'pages' cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: submodules: recursive - name: Setup Hugo uses: peaceiris/actions-hugo@v3 with: hugo-version: '0.134.0' extended: true - name: Build with Hugo env: HUGO_ENVIRONMENT: production HUGO_ENV: production run: hugo --minify - name: Deploy to production server if: github.ref == 'refs/heads/main' uses: appleboy/ssh-action@v1.0.0 with: host: 172.20.1.231 username: root key: ${{ secrets.SERVER_SSH_KEY }} script: | cd /var/www/blog git pull origin main hugo --minify chown -R www-data:www-data /var/www/blog/public systemctl reload nginx || systemctl reload apache2 || true