Skip to content

☄️ Deploy Documentation #34

☄️ Deploy Documentation

☄️ Deploy Documentation #34

# This workflow will deploy the docs as static content to GitHub Pages
name: ☄️ Deploy Documentation
on:
workflow_dispatch:
inputs:
basePath:
description: |
The base path to deploy the docs to. Default is "oxygen-ui" (https://wso2.github.io/oxygen-ui/).
Note: Do not include a leading or trailing slash.
default: "oxygen-ui"
type: string
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
env:
GH_TOKEN: ${{ secrets.UI_BOT_TOKEN }}
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [lts/*]
steps:
- name: ⬇️ Checkout
id: checkout
uses: actions/[email protected]
with:
fetch-depth: 0
token: ${{ env.GH_TOKEN }}
- name: 🟢 Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: 🥡 Setup pnpm
id: setup-pnpm
uses: pnpm/[email protected]
with:
version: latest
run_install: false
- name: 🎈 Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: 🧩 Install Dependencies
id: install-dependencies
run: pnpm install
- name: 🏗️ Build Project
id: build
run: |
pnpm build
- name: 📄 Build Documentation
id: build-docs
run: |
cd docs/website
echo "NEXT_PUBLIC_BASE_PATH=/${{ github.event.inputs.basePath }}" >> .env.local
cd ../..
pnpm build:docs
- name: ⚙️ Setup Pages
id: setup-pages
uses: actions/configure-pages@v3
- name: 🌩 Upload artifact
id: upload-artifact
uses: actions/upload-pages-artifact@v1
with:
path: ./docs/website/out
- name: 🔥 Deploy to GitHub Pages
id: deploy-gh-pages
uses: actions/deploy-pages@v1