-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(release): Initial Release Workflow (#202)
* chore(release): Create new release workflow The initial scaffolding for creating and running the release workflows. * Update workflows for releases * Update install action to autodetect version This now automatically pulls the version of libtiledb to use from Cargo.toml.
- Loading branch information
Showing
9 changed files
with
277 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
name: Nightly CI | ||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- main | ||
- "release-*" | ||
tags: | ||
- "*" | ||
|
||
jobs: | ||
run: | ||
name: "Prepare: ${{ matrix.os }}" | ||
strategy: | ||
matrix: | ||
os: | ||
- "ubuntu-latest" | ||
- "linux-arm64-ubuntu24" | ||
- "macos-13" | ||
- "macos-latest" | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout tiledb-rs | ||
uses: actions/checkout@v4 | ||
- name: Install TileDB | ||
uses: ./.github/actions/install-tiledb | ||
- name: Install Rust ${{ matrix.rust }} | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
components: clippy, rustfmt | ||
- name: Check Formatting | ||
run: cargo fmt --quiet --check | ||
- name: Lint | ||
run: cargo clippy --all-targets --all-features -- -Dwarnings | ||
- name: Build | ||
run: cargo build --all-targets --all-features | ||
- name: Test | ||
run: cargo test --all-targets --all-features | ||
|
||
create_issue_on_fail: | ||
permissions: | ||
issues: write | ||
runs-on: ubuntu-latest | ||
needs: run | ||
if: failure() || cancelled() | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Create Issue on Failure | ||
uses: TileDB-Inc/github-actions/open-issue@main | ||
with: | ||
name: Release Workflow Failure | ||
label: release-failure | ||
assignee: davisp,rroelke |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# How to Create a Release | ||
|
||
This document describes the process for creating a release of tiledb-rs. There | ||
are two main workflows: major/minor releases and patch releases. The two are | ||
basically identical other than patch releases skip a few extra maintenance | ||
steps for the major/minor release types. | ||
|
||
## Release Types | ||
|
||
Given the semantic version `x.y.z`, if `x` or `y` have changed, you're working | ||
on a major/minor release. If only `z` has chagned, then its a patch release | ||
which just means you get to skip a few chore steps. | ||
|
||
## Required Tooling | ||
|
||
- [Git Cliff](https://git-cliff.org/) | ||
- [GitHub CLI](https://cli.github.com/) | ||
|
||
## Preparing a Major or Minor Release | ||
|
||
1. Create a new `release-x.y` branch | ||
2. Perform any maintenance actions | ||
3. Run `./scripts/make-release.sh` | ||
|
||
### 1. Create a new `release-x.y` Branch | ||
|
||
```bash | ||
$ git checkout -b release-0.1 origin/main | ||
``` | ||
|
||
### 2. Perform any maintenance actions | ||
|
||
This section is a work in progress. So far the following steps should be | ||
manually verified: | ||
|
||
1. Ensure that the `workspace.metadata.libtiledb.version` key is correct in `Cargo.toml` | ||
2. Something something, check MSVR maybe? | ||
|
||
### 3. Tag the Release | ||
|
||
The following command will perform four major actions: | ||
|
||
1. Use `git cliff` to generate the release CHANGELOG | ||
2. Open your editor to view the change log before creating the tag | ||
3. Create and push the tag to Github | ||
4. Create the GitHub release using the newly created tag | ||
|
||
```bash | ||
$ ./scripts/make-release.sh x.y.z | ||
``` | ||
|
||
## Preparing a Patch Release | ||
|
||
Preparing a patch release should just be a matter of running `make-release.sh` | ||
on the release branch. | ||
|
||
```bash | ||
$ git checkout release-x.y | ||
$ ./scripts/make-release.sh x.y.z | ||
``` |
Oops, something went wrong.