chore(version): v1.2.0 #1
Workflow file for this run
This file contains hidden or 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: Publish crate | |
env: {} | |
concurrency: | |
group: "${{ github.workflow }}" | |
cancel-in-progress: false # last one must win in case of multiple releases | |
on: | |
push: | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
permissions: | |
contents: read | |
jobs: | |
repo-has-crate: | |
name: Repo publishes crate? | |
runs-on: ubuntu-latest | |
outputs: | |
has_crate: ${{ steps.determine.outputs.has_crate }} | |
steps: | |
- name: Repo has crate? | |
id: determine | |
shell: bash | |
run: | | |
HAS_CRATE="${{ vars.HAS_CRATE }}" | |
echo "has_crate=${HAS_CRATE:-false}" >> ${GITHUB_OUTPUT} | |
publish-crate: | |
name: Publish crate | |
runs-on: ubuntu-latest | |
needs: | |
- repo-has-crate | |
if: | | |
fromJSON(needs.repo-has-crate.outputs.has_crate) == true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
show-progress: false | |
- name: Cache dependencies | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 | |
env: | |
CACHE_NAME: cargo-cache-dependencies | |
with: | |
path: | | |
~/.cargo | |
./target | |
key: ${{ runner.os }}-build-${{ env.CACHE_NAME }}-${{ hashFiles('Cargo.lock') }}-test | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.CACHE_NAME }}-${{ hashFiles('Cargo.lock') }}- | |
${{ runner.os }}-build-${{ env.CACHE_NAME }}- | |
- name: Set up mold | |
uses: rui314/setup-mold@f80524ca6eeaa76759b57fb78ddce5d87a20c720 # v1 | |
- name: Set up toolchain | |
shell: bash | |
run: | | |
rm ${HOME}/.cargo/bin/cargo-fmt | |
rm ${HOME}/.cargo/bin/rust-analyzer | |
rm ${HOME}/.cargo/bin/rustfmt | |
rustup self update | |
rustup update | |
rustup show active-toolchain || rustup toolchain install | |
rustup show | |
cargo --version | |
- name: Get binstall | |
shell: bash | |
working-directory: /tmp | |
run: | | |
archive="cargo-binstall-x86_64-unknown-linux-musl.tgz" | |
wget "https://github.com/cargo-bins/cargo-binstall/releases/latest/download/${archive}" | |
tar -xvf "./${archive}" | |
rm "./${archive}" | |
mv ./cargo-binstall ~/.cargo/bin/ | |
- name: Install binstall to do set-version | |
shell: bash | |
run: | | |
cargo binstall cargo-edit | |
- name: Set version in Cargo.toml / Cargo.lock | |
shell: bash | |
id: version | |
run: | | |
VERSION="${{ github.ref_name }}" | |
# remove v | |
VERSION="${VERSION//v/}" | |
# store | |
cargo set-version ${VERSION} | |
# debug | |
cat Cargo.toml | |
- name: Publish | |
shell: bash | |
env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
run: | | |
# we don't commit the version number in our codebase | |
cargo publish --allow-dirty |