Bump and Release #44
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
name: Bump and Release | |
on: | |
workflow_dispatch: | |
inputs: | |
bump: | |
description: 'New version' | |
required: true | |
default: 'patch' | |
type: choice | |
options: | |
- major | |
- minor | |
- patch | |
- rc | |
- beta | |
- alpha | |
permissions: | |
contents: write | |
env: | |
CARGO_TERM_COLOR: always | |
ANCHOR_VERSION: v0.29.0 | |
jobs: | |
build-all: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install core deps | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: jq pkg-config build-essential libudev-dev libssl-dev | |
execute_install_scripts: true | |
- name: Install cargo-edit | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: cargo-edit | |
version: "0.13.0" | |
- name: Run version bump script | |
run: | | |
source ./scripts/ci/bump-version.sh ${{ github.event.inputs.bump }} | |
echo "$old_version" > OLD_VERSION | |
- name: Create artificats of changes from diff | |
run: | | |
git status --porcelain | sed s/^...// | tar -cvf changes.tar --files-from - | |
mkdir -p changes | |
cd changes | |
mv ../changes.tar . | |
tar -xvf changes.tar | |
rm changes.tar | |
cd - | |
shell: bash | |
- name: Upload source with bumped version | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: bumped_source | |
path: changes/**/* | |
- name: Env variables | |
run: | | |
chmod +x ./scripts/ci/solana-version.sh | |
echo "CI_TAG=v$(cat VERSION)" >> $GITHUB_ENV | |
SOLANA_VERSION="$(./scripts/ci/solana-version.sh)" | |
SOLANA_VERSION="${SOLANA_VERSION#=}" | |
echo "SOLANA_VERSION=$SOLANA_VERSION" >> "$GITHUB_ENV" | |
- uses: ./.github/actions/setup-solana/ | |
- name: Install anchor | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: anchor-cli | |
git: https://github.com/coral-xyz/anchor | |
tag: ${{ env.ANCHOR_VERSION }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: tarball-${{ runner.target }}-build-${{ hashFiles('**/Cargo.lock') }} | |
- name: Build release tarball | |
run: | | |
chmod +x ./scripts/ci/create-tarball.sh | |
chmod +x ./scripts/build-all.sh | |
./scripts/ci/create-tarball.sh | |
- name: Upload tarball | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: release_build | |
path: sablier-geyser-plugin-release-* | |
release: | |
needs: | |
- build-all | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: bumped_source | |
- name: Install jq | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: jq | |
execute_install_scripts: true | |
- name: Env variables | |
run: | | |
chmod +x ./scripts/ci/solana-version.sh | |
echo "CI_TAG=v$(cat VERSION)" >> $GITHUB_ENV | |
echo "OLD_VERSION=v$(cat OLD_VERSION)" >> $GITHUB_ENV | |
SOLANA_VERSION="$(./scripts/ci/solana-version.sh)" | |
SOLANA_VERSION="${SOLANA_VERSION#=}" | |
echo "SOLANA_VERSION=$SOLANA_VERSION" >> "$GITHUB_ENV" | |
chmod +x ./scripts/ci/rust-version.sh | |
source scripts/ci/rust-version.sh | |
echo "PLUGIN_RUST_VERSION=$rust_stable" >> $GITHUB_ENV | |
- name: Commit and tag | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: Bump from ${{ env.OLD_VERSION }} to ${{ env.CI_TAG }} | |
tag: ${{ env.CI_TAG }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: release_build | |
- name: Publish Github release | |
uses: softprops/action-gh-release@v2 | |
with: | |
fail_on_unmatched_files: true | |
name: ${{ env.CI_TAG }} | |
tag_name: ${{ env.CI_TAG }} | |
body: | | |
sablier-geyser-plugin ${{ env.CI_TAG }} | |
solana ${{ env.SOLANA_VERSION }} | |
rust ${{ env.PLUGIN_RUST_VERSION }} | |
# this gh action ignores the working directory, and defaults to the root of the repo | |
files: | | |
sablier-geyser-plugin-release-* |