From fff70973aa6cd01d1e22b4e3539407b2bf51abcd Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 15:40:50 -0800 Subject: [PATCH] wip: add semver workflows --- .github/workflows/publish.yml | 48 +++++++++++++++++++++++++++++++++++ .github/workflows/semver.yml | 9 +++++++ 2 files changed, 57 insertions(+) create mode 100644 .github/workflows/semver.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b602f8c28..f38670cc9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,3 +4,51 @@ # - nightly docs # - the website # - crates themselves + +name: Publish to crates.io + +on: + workflow_dispatch: + inputs: + semver: + type: choice + description: "Semver version to publish" + required: true + options: + - patch + - minor + - major + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + - name: Install cargo-workspaces + run: cargo install cargo-workspaces + - name: Login to crates.io + uses: actions-rs/cargo@v1 + with: + toolchain: nightly + command: login + args: ${{ secrets.CRATES_TOKEN }} + - name: Publish to crates.io + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + + # Release as-is + # This assumes the version tracking PR has been merged + + + # cargo workspaces changed + # # version will automatically commit back to the repo + # # cargo workspaces version -y ${{ github.event.inputs.semver }} + # # publish will automatically commit back to the repo **AND** publish to crates.io + # # cargo workspaces publish -y ${{ github.event.inputs.semver }} diff --git a/.github/workflows/semver.yml b/.github/workflows/semver.yml new file mode 100644 index 000000000..10dcff6c6 --- /dev/null +++ b/.github/workflows/semver.yml @@ -0,0 +1,9 @@ +# Whenever commits are merged to main, update or create a PR that bumps the version +# Tracks if changes are semver compatible +# Most likely the changes aren't semver compatible +# +# We want to have a standing "major" update PR and a standing "minor" update PR where fixes are backported +# +# Whenever a PR is made, we want to comment on it: +# - semver compatibility +# - if it's a fix, it should be backported to the minor update PR