diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea74a279..34691cb7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,6 +73,17 @@ jobs: generate_release_notes: true files: artifacts/* + publish-on-crates-io: + name: Publish on crates.io + runs-on: ubuntu-latest + steps: + - name: Fetch latest code + uses: actions/checkout@v3 + - name: Login + run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} + - name: Publish + run: .maintain/release.sh + clean-artifacts: name: Clean artifacts if: always() diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 3ed8827e..39e9669e 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -64,6 +64,17 @@ jobs: mv ../SHA256 . mv ../MD5 . + publish-on-crates-io: + name: Publish on crates.io + runs-on: ubuntu-latest + steps: + - name: Fetch latest code + uses: actions/checkout@v3 + - name: Login + run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }} + - name: Publish + run: .maintain/release.sh + clean-artifacts: name: Clean artifacts if: always() diff --git a/.maintain/release.sh b/.maintain/release.sh new file mode 100755 index 00000000..51832b0e --- /dev/null +++ b/.maintain/release.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +cargo publish -p subcryptor +cargo publish -p subhasher +cargo publish -p submetadatan +cargo publish -p subrpcer +cargo publish -p subruntimer +# substorager depends on subhasher, sleep for 15s +sleep 15s +cargo publish -p substorager +cargo publish -p subversioner + +cargo publish -p subalfred-util +# subalfred-core depends on subalfred-util, sleep for 15s +sleep 15s +cargo publish -p subalfred-core +cargo publish -p cmd-impl +# subalfred depends on cmd-impl, sleep for 15s +sleep 15s +cargo publish -p subalfred