Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
28 changes: 28 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ on:
required: true
default: true
type: boolean
secrets:
GITBOOK_TOKEN:
description: 'Token used to publish versioned documentation'
required: true

jobs:
get_dry_release_versions:
Expand Down Expand Up @@ -196,3 +200,27 @@ jobs:
run: |
git checkout -B stable origin/${GITHUB_REF#refs/heads/}
git push origin stable --force

publish_versioned_docs:
name: Publish versioned documentation
if: github.event.inputs.dry_run == 'false'
runs-on: ubuntu-latest
needs: [get_dry_release_versions, release]
permissions:
contents: write
env:
GITHUB_TOKEN: ${{ github.event.inputs.token }}
GITBOOK_TOKEN: ${{ secrets.GITBOOK_TOKEN }}
GITBOOK_ORG_ID: ${{ vars.GITBOOK_ORG_ID }}
GITBOOK_SITE_ID: ${{ vars.GITBOOK_SITE_ID }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

- name: Publish released documentation
run: |
python infra/scripts/release/publish_versioned_docs.py \
--version "${{ needs.get_dry_release_versions.outputs.next_version }}"
20 changes: 16 additions & 4 deletions docs/project/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,17 +110,29 @@ We verify the building the wheels and Docker images in **your fork** of Feast, n
- [Maven repo (feast-datatypes, feast-serving-client)](https://mvnrepository.com/artifact/dev.feast)

### 4. (for minor releases) Post-release steps
#### 4a: Creating a new branch
Create a new branch based on master (i.e. v0.22-branch) and push to the main Feast repo. This will be where
cherry-picks go for future patch releases and where documentation will point.
#### 4a: Versioned branch and documentation publication

The `publish_versioned_docs` release job creates the `v<major>.<minor>-branch` maintenance branch
at the released tag, imports that branch into a versioned GitBook space, and makes the new space
the public default. It verifies the final GitBook state before succeeding.

The repository must define `GITBOOK_ORG_ID` and `GITBOOK_SITE_ID` variables and a scoped
`GITBOOK_TOKEN` secret with permission to create and update spaces, update the site, and publish
it. The release token must be able to create the maintenance branch.

The job is safe to rerun. It reuses matching branches and spaces, but it will not move an existing
maintenance branch that points somewhere other than the released tag. It also leaves the previous
documentation version as the public default until the new branch has imported successfully.

#### 4b: Adding a high level summary in the GitHub release notes
By default, Semantic Release will pull in messages from commits (features vs fixes, etc). But this is hard to digest,
so it helps to have a high level overview. See https://github.com/feast-dev/feast/releases for the releases.

#### 4c: Update documentation

In the Feast Gitbook:
If the automated documentation job fails, use its error as the recovery point and complete the
remaining steps in the Feast GitBook:

1. Create a new space within the Feast collection
2. Go to the overflow menu on the top -> Synchronize with Git
1. Specify GitHub as the provider
Expand Down
Loading
Loading