From 86238fb5071ec668cbd0084992e3f408f4ab23fa Mon Sep 17 00:00:00 2001 From: Faith Xu Date: Thu, 24 Aug 2023 17:35:37 -0700 Subject: [PATCH] [Docs] Auto generate JS API (#17271) ### Description Adds new workflow to generate js docs with latest changes so the API page can stay up to date [Test page of latest js docs](https://faxu.github.io/onnxruntime/docs/api/js/modules/InferenceSession.html) --- .github/workflows/publish-gh-pages.yml | 101 ----------------------- .github/workflows/publish-js-apidocs.yml | 50 +++++++++++ 2 files changed, 50 insertions(+), 101 deletions(-) delete mode 100644 .github/workflows/publish-gh-pages.yml create mode 100644 .github/workflows/publish-js-apidocs.yml diff --git a/.github/workflows/publish-gh-pages.yml b/.github/workflows/publish-gh-pages.yml deleted file mode 100644 index 5ed4c1d37a..0000000000 --- a/.github/workflows/publish-gh-pages.yml +++ /dev/null @@ -1,101 +0,0 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Publish site - -on: - # Runs on pushes targeting the branch where the website sources live - push: - branches: ["gh-pages"] - - # 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 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 - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - ref: gh-pages - - - name: Setup Pages - uses: actions/configure-pages@v3 - - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./ - destination: ./_site - - - name: Download C apidocs artifact - uses: dawidd6/action-download-artifact@v2 - with: - name: onnxruntime-c-apidocs - workflow: publish-c-apidocs.yml - branch: main - path: apidocs - - - name: Download C# apidocs artifact - uses: dawidd6/action-download-artifact@v2 - with: - name: onnxruntime-csharp-apidocs - workflow: publish-csharp-apidocs.yml - branch: main - path: apidocs - - - name: Download Java apidocs artifact - uses: dawidd6/action-download-artifact@v2 - with: - name: onnxruntime-java-apidocs - workflow: publish-java-apidocs.yml - branch: main - path: apidocs - - - name: Download Python apidocs artifact - uses: dawidd6/action-download-artifact@v2 - with: - name: onnxruntime-python-apidocs - workflow: publish-python-apidocs.yml - branch: main - path: apidocs - - - name: Move apidocs folder into place - run: | - sudo rm -rf _site/docs/api/c - sudo mv apidocs/docs/api/c _site/docs/api - sudo rm -rf _site/docs/api/csharp - sudo mv apidocs/docs/api/csharp _site/docs/api - sudo rm -rf _site/docs/api/java - sudo mv apidocs/docs/api/java _site/docs/api - sudo rm -rf _site/docs/api/python - sudo mv apidocs/docs/api/python _site/docs/api - - - name: Upload site - uses: actions/upload-pages-artifact@v2 - with: - retention-days: 21 - - # Deployment job - 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/.github/workflows/publish-js-apidocs.yml b/.github/workflows/publish-js-apidocs.yml new file mode 100644 index 0000000000..5668be77c9 --- /dev/null +++ b/.github/workflows/publish-js-apidocs.yml @@ -0,0 +1,50 @@ +name: Update JS API Docs + +# Run when the JS API changes or every month so that the artifact does not expire +on: + push: + branches: + - main + paths: + - js/common/** + schedule: + - cron: '0 0 1 * *' + workflow_dispatch: + +concurrency: + group: "apidocs-js" + cancel-in-progress: false + +permissions: + contents: write + +jobs: + build: + name: Generate JS API docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Generate JS docs + run: | + cd js/ + npm ci + cd common/ + npm ci + npx typedoc + - name: Log source commit + run: git rev-parse --short HEAD > js/common/docs/source-version.txt + - name: Move JS docs into site + run: | + rm -rf _site/docs/api/js + mkdir -p _site/docs/api + mv js/common/docs _site/docs/api/js + - name: Upload docs artifact + uses: actions/upload-artifact@v3 + with: + name: onnxruntime-node-apidocs + path: _site + retention-days: 60