diff --git a/.github/workflows/cargo-test-publish.yaml b/.github/workflows/cargo-test-publish.yaml index 5424853..b2a789b 100644 --- a/.github/workflows/cargo-test-publish.yaml +++ b/.github/workflows/cargo-test-publish.yaml @@ -6,23 +6,22 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout Repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Setup Python - uses: actions/setup-python@v4 + if: github.event_name == 'push' && github.ref_type == 'tag' + uses: actions/setup-python@v5 with: - python-version: '3.x' + python-version: '3.12' - - name: Setup Python Tools - run: + - name: Setup Yaclog + if: github.event_name == 'push' && github.ref_type == 'tag' + run: | pip install yaclog~=1.1 + yaclog show - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - components: rustfmt + - name: Rust setup + run: rustup toolchain install stable --profile minimal --component rustfmt - name: Run Checks run: | @@ -32,21 +31,18 @@ jobs: - name: Run Unit Tests run: cargo test - - name: Generate changelog info - continue-on-error: true - run: | - # todo: make this part of yaclog! - echo "VERSION_TITLE=$(yaclog show -n)" >> $GITHUB_ENV - echo "$(yaclog show -mb)" >> /tmp/RELEASE.md - yaclog show - - name: Publish to Crates.io - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') - run: cargo publish --token ${{ secrets.CARGO_TOKEN }} + if: github.event_name == 'push' + run: | + cargo publish \ + --token ${{ secrets.CARGO_TOKEN }} \ + ${{ github.ref_type != 'tag' && '--dry-run' || '' }} - name: Publish to Github - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') - uses: ncipollo/release-action@v1 - with: - name: Version ${{ env.VERSION_TITLE }} - bodyfile: /tmp/RELEASE.md + if: github.event_name == 'push' && github.ref_type == 'tag' + run: | + gh release create ${{ github.ref_name }} \ + --notes "$(yaclog show -mb)" \ + --title "Version $(yaclog show -n)" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}