From 2c64fb1b81bb7d1060900c27243aa7aaba4d2e93 Mon Sep 17 00:00:00 2001 From: Stan Brubaker <120737309+stanbrub@users.noreply.github.com> Date: Tue, 21 Nov 2023 14:31:23 -0700 Subject: [PATCH] Docs CI Upload Versioned Artifacts (#4853) --- .github/workflows/docs-ci.yml | 79 ++++++++++++++++++++++++++++++----- RELEASE.md | 18 +++++++- 2 files changed, 84 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 99161f04ca7..3b8bd964585 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [ main ] push: - branches: [ main ] + branches: [ 'main', 'release/v*' ] jobs: javadoc: @@ -43,14 +43,18 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: allJavadoc - arguments: --scan combined-javadoc:allJavadoc + arguments: --scan outputVersion combined-javadoc:allJavadoc gradle-version: wrapper + + - name: Get Deephaven Version + id: dhc-version + run: echo "version=$(cat build/version)" >> $GITHUB_OUTPUT - name: Upload Javadocs - if: ${{ github.ref == 'refs/heads/main' }} + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} uses: actions/upload-artifact@v3 with: - name: javadocs + name: javadocs-${{ steps.dhc-version.outputs.version }} path: 'combined-javadoc/build/docs/javadoc/' - name: Deploy Javadoc @@ -96,14 +100,20 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: typedoc - arguments: --scan :web-client-api:types:typedoc + arguments: --scan outputVersion :web-client-api:types:typedoc gradle-version: wrapper + + - name: Get Deephaven Version + id: dhc-version + run: echo "version=$(cat build/version)" >> $GITHUB_OUTPUT + - name: Upload JavaScript/TypeScript docs - if: ${{ github.ref == 'refs/heads/main' }} + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} uses: actions/upload-artifact@v3 with: - name: typedoc + name: typedoc-${{ steps.dhc-version.outputs.version }} path: 'web/client-api/types/build/documentation/' + - name: Deploy JavaScript/TypeScript docs if: ${{ github.ref == 'refs/heads/main' }} uses: burnett01/rsync-deployments@5.2 @@ -152,8 +162,26 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: pythonDocs - arguments: --scan sphinx:pythonDocs sphinx:pydeephavenDocs + arguments: --scan outputVersion sphinx:pythonDocs sphinx:pydeephavenDocs gradle-version: wrapper + + - name: Get Deephaven Version + id: dhc-version + run: echo "version=$(cat build/version)" >> $GITHUB_OUTPUT + + - name: Upload Python Server Docs + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} + uses: actions/upload-artifact@v3 + with: + name: pyserver-docs-${{ steps.dhc-version.outputs.version }} + path: 'sphinx/build/docs/' + + - name: Upload Python Client Docs + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} + uses: actions/upload-artifact@v3 + with: + name: pyclient-docs-${{ steps.dhc-version.outputs.version }} + path: 'sphinx/build/pyclient-docs/' - name: Deploy Python Docs if: ${{ github.ref == 'refs/heads/main' }} @@ -216,8 +244,26 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: cppDocs - arguments: --scan sphinx:cppClientDocs sphinx:cppExamplesDocs + arguments: --scan outputVersion sphinx:cppClientDocs sphinx:cppExamplesDocs gradle-version: wrapper + + - name: Get Deephaven Version + id: dhc-version + run: echo "version=$(cat build/version)" >> $GITHUB_OUTPUT + + - name: Upload Client C++ Docs + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} + uses: actions/upload-artifact@v3 + with: + name: cppclient-docs-${{ steps.dhc-version.outputs.version }} + path: 'sphinx/build/cppClientDocs/' + + - name: Upload Client C++ Example Docs + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} + uses: actions/upload-artifact@v3 + with: + name: cppclient-examples-${{ steps.dhc-version.outputs.version }} + path: 'sphinx/build/cppExamplesDocs/' - name: Deploy Client C++ Docs if: ${{ github.ref == 'refs/heads/main' }} @@ -272,8 +318,19 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: rDocs - arguments: R:rClientSite + arguments: --scan outputVersion R:rClientSite gradle-version: wrapper + + - name: Get Deephaven Version + id: dhc-version + run: echo "version=$(cat build/version)" >> $GITHUB_OUTPUT + + - name: Upload R Docs + if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }} + uses: actions/upload-artifact@v3 + with: + name: rdoc-${{ steps.dhc-version.outputs.version }} + path: 'R/rdeephaven/docs/' - name: Deploy R Docs if: ${{ github.ref == 'refs/heads/main' }} @@ -289,4 +346,4 @@ jobs: - name: Upload JVM Error Logs uses: actions/upload-artifact@v3 - if: failure() \ No newline at end of file + if: failure() diff --git a/RELEASE.md b/RELEASE.md index 3bc643c6d78..ad31c9c2d1a 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -54,6 +54,18 @@ The Deephaven python client is released as the `pydeephaven` wheel at [PyPi](htt ### Deephaven go client The Deephaven go client is released as a [Go package](https://pkg.go.dev/github.com/deephaven/deephaven-core/go). +### Deephaven API docs +API documentation is generated for Java, Python and C++ implemetations for Deephaven integration. +The artifacts are released to [GitHub releases](https://github.com/deephaven/deephaven-core/releases) +and are published as the following: +* [Java Client/Server API](https://deephaven.io/core/javadoc/) +* [Python Integration API](https://deephaven.io/core/pydoc/) +* [Python Client API](https://deephaven.io/core/client-api/python/) +* [C++ Client API](https://deephaven.io/core/client-api/cpp/) +* [C++ Examples](https://deephaven.io/core/client-api/cpp-examples/) +* [R Client API](https://deephaven.io/core/client-api/r/) +* [TypeScript Client API](https://deephaven.io/core/client-api/javascript/) + ## Release process The majority of the release procedure is controlled through the [publish-ci.yml workflow](./.github/workflows/publish-ci.yml). @@ -150,7 +162,8 @@ Once the workflow job is done, ensure all publication sources have the new artif ### 5. Download artifacts Once the full publish-ci.yml worflow is done, the release artifacts can be downloaded from the GitHub Artifacts (located in the "Summary" tab of the action). -These are currently manual steps taken from the browser. +Similarly, release artifacts can be downloaded from the docs-ci.yml workflow. +These are currently manual steps taken from the browser. (The artifacts will be uploaded in Step #9) There is potential in the future for QA-ing these artifacts above and beyond the integration testing that CI provides, as the release is not set in stone yet. @@ -208,7 +221,8 @@ Create a new [GitHub release](https://github.com/deephaven/deephaven-core/releas The convention is to have the Release title of the form `vX.Y.Z` and to autogenerate the release notes in comparison to the previous release tag. Question: should we always generate release notes based off of the previous minor release, instead of patch? Our git release workflow suggests we may want to do it always minor to minor. -Upload the Deephaven server application, deephaven-core wheel, pydeephaven wheel, and SBOM artifacts. +Upload the Deephaven server application, deephaven-core wheel, pydeephaven wheel, and SBOM artifacts. Also, upload the C++, Java, Python, R and TypeScript docs artifacts. +(These are the artifacts downloaded in Step #5) Hit the GitHub "Publish release" button.