Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs CI Upload Versioned Artifacts #4853

Merged
merged 37 commits into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7921903
Build just the artifacts
stanbrub Nov 15, 2023
2f8c599
Let it work on a branch
stanbrub Nov 15, 2023
13aef18
Added artifacts for pydoc and cppdoc. Added DH version
stanbrub Nov 15, 2023
7f7ae7c
Another experiment with Github Environment
stanbrub Nov 16, 2023
4e7bd8c
Another experiment with Github Environment
stanbrub Nov 16, 2023
5225dcd
Another experiment with Github Environment
stanbrub Nov 16, 2023
c1963a6
Another experiment with Github Environment
stanbrub Nov 16, 2023
6a28de4
Another experiment with Github Environment
stanbrub Nov 16, 2023
90d23d3
Another experiment with Github Environment
stanbrub Nov 16, 2023
b012392
Another experiment with Github Environment
stanbrub Nov 16, 2023
3dafbcf
Added artifact uploads with version
stanbrub Nov 16, 2023
382eb3d
Uncomment Deploy Sections
stanbrub Nov 16, 2023
d1a5775
Merge branch 'deephaven:main' into docs-ci-version-improvements
stanbrub Nov 16, 2023
ee41802
Added Upload checks for main
stanbrub Nov 16, 2023
21f1fa7
Merge branch 'deephaven:main' into docs-ci-version-improvements
stanbrub Nov 16, 2023
b568e93
Removed unnecessary if
stanbrub Nov 16, 2023
4c2b836
Removed test file
stanbrub Nov 16, 2023
6bea72a
Updated RELEASE.MD with instructions on the new artifacts
stanbrub Nov 16, 2023
5494e5d
Changed some RELEASE.MD wording
stanbrub Nov 16, 2023
38e5724
RELEASES.MD spelling fixes
stanbrub Nov 16, 2023
ce96253
Yet more RELEASE.MD word fixes
stanbrub Nov 16, 2023
55d9fb1
Replaced printVersion with cache outputVersion
stanbrub Nov 17, 2023
7a3a99b
sigh
stanbrub Nov 17, 2023
e0e9db7
Added outputVersion arg to rest of gradle cache actions
stanbrub Nov 17, 2023
4d8986a
Removed extraneious printVersions
stanbrub Nov 17, 2023
1992ce4
Added integration API docs section to RELEASE.MD
stanbrub Nov 17, 2023
6121119
Correct the path to read generated typedoc when deploying (#4854)
niloc132 Nov 17, 2023
e8eac51
Invoke typedoc to produce browsable JS API documentation (#4757)
niloc132 Nov 17, 2023
87a4fb8
Merge branch 'main' into docs-ci-version-improvements
stanbrub Nov 21, 2023
8db7e86
Added uploads/versions for rdoc and typedoc
stanbrub Nov 21, 2023
5e632b7
Added outputVersion to rdoc and typedoc generators
stanbrub Nov 21, 2023
1d52fbc
Turned re-enabled main branch restriction
stanbrub Nov 21, 2023
76a7e2b
Updated with R and TypeScript notes
stanbrub Nov 21, 2023
a9db433
Added release branch for push trigger
stanbrub Nov 21, 2023
8a4090c
Added release branch to upload and deploy conditionals
stanbrub Nov 21, 2023
5fcca2f
Rerworked deploy triggers
stanbrub Nov 21, 2023
26caa91
Merge branch 'deephaven:main' into docs-ci-version-improvements
stanbrub Nov 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 75 additions & 18 deletions .github/workflows/docs-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Docs CI

on:
pull_request:
branches: [ main ]
devinrsmith marked this conversation as resolved.
Show resolved Hide resolved
branches: [ 'main', 'release/v*' ]
push:
branches: [ main ]

Expand Down Expand Up @@ -43,18 +43,22 @@ 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 }}
devinrsmith marked this conversation as resolved.
Show resolved Hide resolved
path: 'combined-javadoc/build/docs/javadoc/'

- name: Deploy Javadoc
if: ${{ github.ref == 'refs/heads/main' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
stanbrub marked this conversation as resolved.
Show resolved Hide resolved
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand Down Expand Up @@ -96,16 +100,22 @@ 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' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand Down Expand Up @@ -152,11 +162,29 @@ 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' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand All @@ -168,7 +196,7 @@ jobs:
remote_key: ${{ secrets.DEEPHAVEN_CORE_SSH_KEY }}

- name: Deploy Client Python Docs
if: ${{ github.ref == 'refs/heads/main' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand Down Expand Up @@ -216,11 +244,29 @@ 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' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand All @@ -232,7 +278,7 @@ jobs:
remote_key: ${{ secrets.DEEPHAVEN_CORE_SSH_KEY }}

- name: Deploy Client C++ Example Docs
if: ${{ github.ref == 'refs/heads/main' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
Expand Down Expand Up @@ -272,11 +318,22 @@ 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' }}
if: ${{ (github.ref == 'refs/heads/main') || startsWith(github.ref, 'refs/heads/release/v') }}
uses: burnett01/[email protected]
with:
switches: -avzr --delete
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.
stanbrub marked this conversation as resolved.
Show resolved Hide resolved
stanbrub marked this conversation as resolved.
Show resolved Hide resolved
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
Loading