Skip to content

Commit

Permalink
Docs CI Upload Versioned Artifacts (deephaven#4853)
Browse files Browse the repository at this point in the history
  • Loading branch information
stanbrub committed Nov 21, 2023
1 parent f679f0c commit 2c64fb1
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 13 deletions.
79 changes: 68 additions & 11 deletions .github/workflows/docs-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
branches: [ 'main', 'release/v*' ]

jobs:
javadoc:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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' }}
Expand Down Expand Up @@ -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' }}
Expand Down Expand Up @@ -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' }}
Expand All @@ -289,4 +346,4 @@ jobs:

- name: Upload JVM Error Logs
uses: actions/upload-artifact@v3
if: failure()
if: failure()
18 changes: 16 additions & 2 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -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.

Expand Down

0 comments on commit 2c64fb1

Please sign in to comment.