|
@@ -0,0 +1,105 @@
|
|
|
+name: release-cargo
|
|
|
+
|
|
|
+on:
|
|
|
+ push:
|
|
|
+ branches:
|
|
|
+ - master
|
|
|
+ paths:
|
|
|
+ - '**/Cargo.toml'
|
|
|
+
|
|
|
+jobs:
|
|
|
+ publish:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ package:
|
|
|
+ - name: tauri-bundler
|
|
|
+ registryName: tauri-bundler
|
|
|
+ path: cli/tauri-bundler
|
|
|
+ publishPath: /target/package
|
|
|
+ - name: tauri-core
|
|
|
+ registryName: tauri
|
|
|
+ path: tauri
|
|
|
+ publishPath: /target/package
|
|
|
+ - name: tauri-api
|
|
|
+ registryName: tauri-api
|
|
|
+ path: tauri-api
|
|
|
+ - name: tauri-updater
|
|
|
+ registryName: tauri-updater
|
|
|
+ path: tauri-updater
|
|
|
+ - name: tauri-utils
|
|
|
+ registryName: tauri-utils
|
|
|
+ path: tauri-utils
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ ref: master
|
|
|
+ toolchain: stable
|
|
|
+ - name: install webkit2gtk
|
|
|
+ run: |
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install -y webkit2gtk-4.0
|
|
|
+ - name: get version
|
|
|
+ working-directory: ${{ matrix.package.path }}
|
|
|
+ run: echo ::set-env name=PACKAGE_VERSION::$(sed -nE 's/^\s*version = "(.*?)"/\1/p' Cargo.toml)
|
|
|
+ - name: check published version
|
|
|
+ run: echo ::set-env name=PUBLISHED_VERSION::$(cargo search ${{ matrix.package.registryName }} --limit 1 | sed -nE 's/^[^"]*"//; s/".*//1p' -)
|
|
|
+ - name: cargo package
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ working-directory: ${{ matrix.package.path }}
|
|
|
+ run: |
|
|
|
+ echo "package dir:"
|
|
|
+ ls
|
|
|
+ cargo package
|
|
|
+ echo "We will publish:" $PACKAGE_VERSION
|
|
|
+ echo "This is current latest:" $PUBLISHED_VERSION
|
|
|
+ echo "post package dir:"
|
|
|
+ cd ${{ matrix.publishPath }}
|
|
|
+ ls
|
|
|
+ - name: cargo audit
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ working-directory: ${{ matrix.package.path }}
|
|
|
+ run: |
|
|
|
+ cargo install cargo-audit
|
|
|
+ echo "# Cargo Audit" | tee -a ${{runner.workspace }}/notes.md
|
|
|
+ cargo audit 2>&1 | tee -a ${{runner.workspace }}/notes.md
|
|
|
+ - name: Publish ${{ matrix.package.name }}
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ working-directory: ${{ matrix.package.path }}
|
|
|
+ run: |
|
|
|
+ echo "# Cargo Publish" | tee -a ${{runner.workspace }}/notes.md
|
|
|
+ cargo publish 2>&1 | tee -a ${{runner.workspace }}/notes.md
|
|
|
+ - name: Create Release
|
|
|
+ id: create_crate_release
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ uses: jbolda/create-release@v1.1.0
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ with:
|
|
|
+ tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
|
|
|
+ release_name: "Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"
|
|
|
+ bodyFromFile: ./../notes.md
|
|
|
+ draft: false
|
|
|
+ prerelease: false
|
|
|
+ - name: Upload Release Asset
|
|
|
+ id: upload-release-asset
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ uses: actions/upload-release-asset@v1.0.1
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ with:
|
|
|
+ upload_url: ${{ steps.create_crate_release.outputs.upload_url }}
|
|
|
+ asset_path: ./${{ matrix.package.publishPath }}/${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
|
|
|
+ asset_name: ${{ matrix.package.registryName }}-${{ env.PACKAGE_VERSION }}.crate
|
|
|
+ asset_content_type: application/x-gtar
|
|
|
+ - name: Tangle Release
|
|
|
+ id: tangle_release
|
|
|
+ if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
|
|
|
+ uses: iotaledger/gh-tangle-release@v0.5.2
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ IOTA_SEED: ${{ secrets.IOTA_SEED }}
|
|
|
+ with:
|
|
|
+ tag_name: ${{ matrix.package.name }}-v${{ env.PACKAGE_VERSION }}
|
|
|
+ comment: "[Test] Release ${{ matrix.package.name }} v${{ env.PACKAGE_VERSION }} [crates.io]"
|