diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0bf6b175..83260259 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -253,7 +253,7 @@ jobs: || 'no' }} test-book: - name: test Book + name: test (Book) strategy: fail-fast: false matrix: @@ -303,6 +303,28 @@ jobs: # Releasing # ############# + publish: + name: publish (crates.io) + if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} + needs: ["release-github"] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: stable + + - name: Parse crate name and version from Git tag + id: tag + uses: actions-ecosystem/action-regex-match@v2 + with: + text: ${{ github.ref }} + regex: '^refs/tags/(([a-z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(-.+)?))$' + + - run: cargo publish -p ${{ steps.tag.outputs.group2 }} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CRATESIO_TOKEN }} + release-check: name: check release if: ${{ !startsWith(github.ref, 'refs/tags/juniper') }} @@ -331,30 +353,9 @@ jobs: - run: make cargo.release crate=${{ matrix.crate }} ver=minor exec=no install=no - release-crate: - name: release on crates.io - needs: ["release-github"] - if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: dtolnay/rust-toolchain@v1 - with: - toolchain: stable - - - name: Parse crate name and version from Git tag - id: tag - uses: actions-ecosystem/action-regex-match@v2 - with: - text: ${{ github.ref }} - regex: '^refs/tags/(([a-z_]+)-v([0-9]+\.[0-9]+\.[0-9]+(-.+)?))$' - - - name: Publish `${{ steps.tag.outputs.group2 }}` crate - run: cargo publish -p ${{ steps.tag.outputs.group2 }} - --token ${{ secrets.CRATESIO_TOKEN }} - release-github: - name: release on GitHub + name: release (GitHub) + if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} needs: - bench - clippy @@ -366,7 +367,6 @@ jobs: - test - test-book - wasm - if: ${{ startsWith(github.ref, 'refs/tags/juniper') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -389,7 +389,8 @@ jobs: run: echo "link=${{ github.server_url }}/${{ github.repository }}/blob/${{ steps.tag.outputs.group1 }}/${{ steps.tag.outputs.group2 }}/CHANGELOG.md#$(sed -n '/^## \[${{ steps.tag.outputs.group3 }}\]/{s/^## \[\(.*\)\][^0-9]*\([0-9].*\)/\1--\2/;s/[^0-9a-z-]*//g;p;}' ${{ steps.tag.outputs.group2 }}/CHANGELOG.md)" >> $GITHUB_OUTPUT - - uses: softprops/action-gh-release@v1 + - name: Create GitHub release + uses: softprops/action-gh-release@v1 with: name: ${{ steps.tag.outputs.group2 }} ${{ steps.tag.outputs.group3 }} body: | @@ -405,10 +406,10 @@ jobs: ########## deploy-book: - name: deploy Book - needs: ["test", "test-book"] + name: deploy (Book) if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/juniper@') }} + needs: ["test", "test-book"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v3