Skip to content

Bump and Release

Bump and Release #44

Workflow file for this run

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-*