name: PUBLISH DOCS on: [workflow_dispatch] # or set up your own custom triggers permissions: contents: write # allows the 'Commit' step without tokens jobs: get_history: # create an artifact from the existing documentation builds runs-on: ubuntu-latest steps: - name: get the gh-pages repo uses: actions/checkout@v4 with: ref: gh-pages - name: tar the existing docs run: | mkdir -p ./docs tar -cvf documentation.tar ./docs - name: create a document artifact uses: actions/upload-artifact@v4 with: name: documentation path: documentation.tar build: # builds the distribution and then the documentation needs: get_history runs-on: ubuntu-latest steps: - name: Checkout src uses: actions/checkout@v4 - run: mkdir -p ./docs - name: Download the existing documents artifact uses: actions/download-artifact@v4 with: name: documentation - run: tar -xf documentation.tar ./docs -C ./docs - name: Build uses: actions/setup-node@v4 with: node-version: 20.x cache: 'pnpm' - run: npm install -g pnpm && pnpm install - run: pnpm run build # set up 'build' script in your package.json - name: Build documents run: pnpm run docs #set up 'docs' build script in your package.json - name: tar the new docs run: tar -cvf newdocumentation.tar ./docs - name: create a new document artifact uses: actions/upload-artifact@v4 with: name: newdocumentation path: newdocumentation.tar commit: # commit the old and new merged documents to gh-pages/docs needs: build runs-on: ubuntu-latest steps: - name: checkout the gh-pages repo uses: actions/checkout@v4 with: ref: gh-pages - run: mkdir -p ./docs - name: Download the new documents artifact uses: actions/download-artifact@v4 with: name: newdocumentation - run: tar -xf newdocumentation.tar ./docs -C ./docs - name: commit run: | git config --global user.email "cis-oss@users.noreply.github.com" git config --global user.name "Continuous Integration" git add . git commit -m "CI updated the documentation" git push