diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 457f81c..f1b4feb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,30 +20,20 @@ jobs: toolchain: stable override: true - - name: Check if publication is necessary - id: check - run: | - if [[ "${{ github.ref }}" == refs/tags/* ]] || [[ "${{ github.ref }}" == refs/heads/master ]]; then - echo "Publishing is necessary" - echo "publish=true" >> $GITHUB_OUTPUT - else - echo "Publishing is not necessary" - echo "publish=false" >> $GITHUB_OUTPUT - fi - - name: Publish to crates.io - if: steps.check.outputs.publish == 'true' env: CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} run: | if [[ "${{ github.ref }}" == refs/tags/* ]]; then # If it's a tag, publish as is cargo publish - else + elif [[ "${{ github.ref }}" == refs/heads/master ]]; then # If it's a push to master, publish as a pre-release version - VERSION=$(grep version Cargo.toml | sed -E 's/version = "(.*)"/\1/' | tr -d ' ') + VERSION=$(grep '^version =' Cargo.toml | sed -E 's/version = "(.*?)"/\1/') COMMIT_HASH=$(git rev-parse --short HEAD) NEW_VERSION="${VERSION}-pre.${COMMIT_HASH}" - sed -i "s/^version = .*/version = \"${NEW_VERSION}\"/" Cargo.toml + sed -i "s/^version = \".*\"/version = \"${NEW_VERSION}\"/" Cargo.toml cargo publish --allow-dirty - fi + else + echo "Not publishing: not a push to master or a tag" + fi \ No newline at end of file