Skip to content

[CI] Integrate automated deployment strategy for docs site - #5142

Merged
roeap merged 5 commits into
delta-io:masterfrom
jakebellacera:cd-docs
Oct 20, 2025
Merged

roeap merged 5 commits into
delta-io:masterfrom
jakebellacera:cd-docs

Conversation

@jakebellacera

@jakebellacera jakebellacera commented Aug 29, 2025 •

Copy link
Copy Markdown
Contributor

Which Delta project/connector is this regarding?

  • Spark
  • Standalone
  • Flink
  • Kernel
  • Other (Docs)

Description

This PR introduces a new Github Actions workflow which will automatically build and deploy the docs site and any desired version(s) of API docs. This workflow runs only under one of the following conditions:

  1. Whenever a PR is merged into master which includes changes the /docs directory (most common case).
  2. If there is a new release (less common — mainly used for API doc updates).
  3. Manually (useful for debugging purposes; only users with the collaborators permission to this repo can run it).

Here's an example of a working deployment:

How it works

  1. When one of the conditions above is met, the publish_docs workflow is kicked off.
  2. Builds one or more version(s) of the Delta Lake API docs.
  3. Builds the docs site with the specified Delta Lake API docs.
  4. Uploads the site to Netlify.

Specifying API docs versions

This workflow can build multiple versions of Delta Lake APIs. To do so, just specify the version(s) in the publish_docs workflow. Here's what's currently defined:

jobs:
build_api_docs:
name: Build API docs (${{ matrix.version.name }})
runs-on: ubuntu-latest
strategy:
matrix:
version:
- name: latest
ref: v4.0.0
java: 17
out_dir: docs/apis/_site/api
- name: 3.3.2
ref: v3.3.2
java: 8
out_dir: docs/apis/_site/api

The workflow will check out the ref of this repo and use it to generate the API docs. The name is used to specify the human-readable folder to the API docs. For example, "latest" is using the ref v4.0.0, while "3.3.2" is using the ref v3.3.2. This allows for more flexibility.

Additional changes required before merging

Add the following variables to this Github repo:

Add the following secrets to this Github repo:

Other changes

  • Updated the v3 API docs to v3.3.2
  • Upgraded Node.js dependencies
  • Updated the scala version for building v4 API docs (note: due to our automation building an older ref of Delta Lake v4, this won't apply until the next v4 release).

@roeap roeap changed the title Integrate automated deployment strategy for docs site [CI] Integrate automated deployment strategy for docs site Oct 20, 2025
@roeap
roeap merged commit 38a5cdd into delta-io:master Oct 20, 2025
27 checks passed
@jakebellacera
jakebellacera deleted the cd-docs branch October 22, 2025 00:31
huashi-st pushed a commit to huashi-st/delta that referenced this pull request Apr 24, 2026
…5142)

<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [x] Other (Docs)

## Description

This PR introduces a new Github Actions workflow which will
automatically build and deploy the docs site and any desired version(s)
of API docs. This workflow runs only under one of the following
conditions:

1. Whenever a PR is merged into `master` which includes changes the
`/docs` directory (most common case).
2. If there is a new
[release](https://github.com/delta-io/delta/releases) (less common —
mainly used for API doc updates).
3. Manually (useful for debugging purposes; only users with the
`collaborators` permission to this repo can run it).

Here's an example of a working deployment:

- [Github Actions
log](https://github.com/jakebellacera/delta/actions/runs/17314645500)
- [Test deployment](https://vocal-bonbon-3bb61a.netlify.app/)

### How it works

1. When one of the conditions above is met, the `publish_docs` workflow
is kicked off.
2. Builds one or more version(s) of the Delta Lake API docs.
3. Builds the docs site with the specified Delta Lake API docs.
5. Uploads the site to Netlify.

### Specifying API docs versions

This workflow can build multiple versions of Delta Lake APIs. To do so,
just specify the version(s) in the `publish_docs` workflow. Here's
what's currently defined:


https://github.com/delta-io/delta/blob/89d77c7a94f274ece59a9a95c56edf5a95df6bfa/.github/workflows/publish_docs.yaml#L14-L29

The workflow will check out the `ref` of this repo and use it to
generate the API docs. The `name` is used to specify the human-readable
folder to the API docs. For example, "latest" is using the ref
[v4.0.0](https://github.com/delta-io/delta/tree/v4.0.0), while "3.3.2"
is using the ref
[v3.3.2](https://github.com/delta-io/delta/tree/v3.3.2). This allows for
more flexibility.

### Additional changes required before merging

Add the following
[variables](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables)
to this Github repo:

- `NETLIFY_SITE_ID` - [Netlify Site
ID](https://docs.netlify.com/api-and-cli-guides/cli-guides/get-started-with-cli/)
we want to deploy to

Add the following
[secrets](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)
to this Github repo:

- `NETLIFY_AUTH_TOKEN` - [Netlify user
PAT](https://docs.netlify.com/api-and-cli-guides/cli-guides/get-started-with-cli/#obtain-a-token-in-the-netlify-ui)
to authenticate Netlify CLI with

### Other changes

- Updated the v3 API docs to v3.3.2
- Upgraded Node.js dependencies
- Updated the scala version for building v4 API docs (note: due to our
automation building an older ref of Delta Lake v4, this won't apply
until the next v4 release).

---------

Co-authored-by: Robert Pack <42610831+roeap@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants