name: Publish API Documentation on GitHub Pages permissions: id-token: write contents: write on: workflow_dispatch: jobs: publish: name: Publish to NPM and GitHub pages runs-on: ubuntu-22.04 # The current approach is silly. We should be smarter and use `actions/upload-artifact` and `actions/download-artifact` instead of rebuilding # everything from scratch again. (git checkout, Node.js install, npm, etc.) It was not possible to share artifacts on Travis CI without an # external storage (such as S3), so we did rebuild everything before the npm publish. We should overcome this limitation with GH Actions. steps: - name: Checkout uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: fetch-depth: 0 # To fetch all history for all branches and tags. (Will be required for caching with lerna: https://github.com/markuplint/markuplint/pull/111) - name: Use Node.js 22.x uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3.8.2 with: node-version: "22.x" registry-url: "https://registry.npmjs.org" - name: Use Python 3.13 uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.13" - name: Install and Build run: | npm ci npm run build env: NODE_OPTIONS: --max_old_space_size=4096 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # https://github.com/microsoft/vscode-ripgrep/issues/9 - name: Generate Documentation run: | npm run docs env: NODE_OPTIONS: --max_old_space_size=8192 - name: Publish GH Pages uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3.9.3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./gh-pages force_orphan: true # will only keep latest commit on branch gh-pages