diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..cf0960fe4 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,69 @@ +--- +name: Docs + +on: + push: + branches: + - main + paths: + - 'docs/**' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set version env variables + run: | + cat .version >> $GITHUB_ENV + + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: "${{env.GO_VERSION}}" + + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb /~https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + + - name: Install Dart Sass + run: sudo snap install dart-sass + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + + - name: Install Node.js dependencies + run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" + + - name: Build with Hugo + run: make -C docs dist + + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./docs/public + + 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 diff --git a/docs/Makefile b/docs/Makefile index 9da4b4a25..804a31ded 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,7 +1,10 @@ +.PHONY: install-dependencies +install-dependencies: + brew install hugo + .PHONY: up up: @hugo server --minify --disableFastRender -.PHONY: install-dependencies -install-dependencies: - brew install hugo +dist: + @HUGO_ENVIRONMENT=production HUGO_ENV=production hugo --gc --minify