# Sample workflow for building and deploying a Hugo site to GitHub Pages name: Deploy Hugo site to Pages on: # Runs on pushes targeting the default branch push: branches: ["main"] # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Environment variables available to all jobs and steps in this workflow env: HUGO_ENV: production HUGO_VERSION: "0.114.0" GO_VERSION: "1.16.3" NODE_VERSION: "18.15.0" TINA_CLIENT_ID: ${{ secrets.TINA_CLIENT_ID }} TINA_TOKEN: ${{ secrets.TINA_TOKEN }} jobs: # Build job build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} - name: Install Hugo run: | curl -LO "https://github.com/gohugoio/hugo/releases/download/v${{ env.HUGO_VERSION }}/hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz" tar -xvf hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz sudo mv hugo /usr/local/bin/ rm hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz hugo version - name: Install Go run: | curl -LO "https://dl.google.com/go/go${{ env.GO_VERSION }}.linux-amd64.tar.gz" sudo tar -C /usr/local -xzf go${{ env.GO_VERSION }}.linux-amd64.tar.gz echo "export PATH=$PATH:/usr/local/go/bin" >> $GITHUB_ENV rm go${{ env.GO_VERSION }}.linux-amd64.tar.gz go version - name: Install npm dependencies run: npm install - name: Publish to GitHub Pages run: npm run build - name: Upload artifact uses: actions/upload-pages-artifact@v1 with: path: ./public # Deployment job deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2