From 2f7e2f08386154665e2a3ca68718777d8c2eed14 Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Sun, 24 Nov 2024 15:26:15 -0500 Subject: [PATCH] feat: add publish_crates.yml --- .github/workflows/publish_crates.yml | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/publish_crates.yml diff --git a/.github/workflows/publish_crates.yml b/.github/workflows/publish_crates.yml new file mode 100644 index 000000000..a888ee605 --- /dev/null +++ b/.github/workflows/publish_crates.yml @@ -0,0 +1,55 @@ +name: Publish to Crates.io + +on: + workflow_dispatch: + inputs: + version_type: + description: 'Version publish type' + required: true + type: choice + options: + - patch + - minor + - major + +permissions: + contents: write + +env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Install cargo-make + uses: actions-rs/cargo@v1 + with: + command: install + args: --force cargo-make + + - name: Create publish branch + run: | + git config --global user.name 'GitHub Actions' + git config --global user.email 'actions@github.com' + git checkout -b publish-version-${{ github.run_number }} + + - name: Publish version + run: | + if [ "${{ github.event.inputs.version_type }}" = "patch" ]; then + cargo make publish-patch + elif [ "${{ github.event.inputs.version_type }}" = "minor" ]; then + cargo make publish-minor + else + cargo make publish-major + fi