diff --git a/.github/workflows/publish-github-pages.yml b/.github/workflows/publish-github-pages.yml new file mode 100644 index 0000000..ff4ae81 --- /dev/null +++ b/.github/workflows/publish-github-pages.yml @@ -0,0 +1,78 @@ +# Simple workflow for deploying static content to GitHub Pages +name: GitHub Pages + +on: + # Runs on pushes, if all conditions are met: + push: + # ... on the website branch ... + branches: + - 'website' + # ... skip tags only ... + tags-ignore: + - '**' + # ... any of these files changes ... + paths: + - 'website/**' + - 'typedoc.json' + - '**/tsconfig*.json' + - 'src/**/*.ts' + - 'README.md' + - '.github/workflows/publish-github-pages.yml' + - 'package.json' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + + steps: + - name: Checkout + # https://github.com/actions/checkout + uses: actions/checkout@v4 + with: + fetch-depth: 3 + + - name: Use Nodejs + # https://github.com/actions/setup-node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install dependencies + run: npm --prefix website install + + - name: Build the Docusaurus site + run: npm --prefix website run build + + - name: Setup Pages + # https://github.com/actions/configure-pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + # https://github.com/actions/upload-pages-artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload entire repository + path: './website/build' + + - name: Deploy to GitHub Pages + id: deployment + # https://github.com/actions/deploy-pages + uses: actions/deploy-pages@v4