feat(cli.rs): add support to cargo-binstall, closes #4651 (#4817)

This commit is contained in:
Lucas Fernandes Nogueira 2022-08-02 18:54:40 -03:00 committed by GitHub
parent f21cbecdeb
commit 90d5929fea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 126 additions and 0 deletions

5
.changes/cli-binstall.md Normal file
View File

@ -0,0 +1,5 @@
---
"cli.rs": patch
---
Add support to cargo-binstall.

View File

@ -171,3 +171,13 @@ jobs:
token: ${{ secrets.TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clijs
- name: Trigger cli.rs publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'cli.rs')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clirs

82
.github/workflows/publish-cli-rs.yml vendored Normal file
View File

@ -0,0 +1,82 @@
name: publish cli.rs
env:
MACOSX_DEPLOYMENT_TARGET: '10.13'
on:
workflow_dispatch:
repository_dispatch:
types: [publish-clirs]
jobs:
build:
runs-on: ${{ matrix.target.platform }}
strategy:
fail-fast: false
matrix:
target:
- {
name: 'x86_64-unknown-linux-gnu',
platform: 'ubuntu-18.04',
ext: ''
}
- { name: 'x86_64-apple-darwin', platform: 'macos-latest', ext: '' }
- {
name: 'x86_64-pc-windows-msvc',
platform: 'windows-latest',
ext: '.exe'
}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: install stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install Linux dependencies
if: matrix.target.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
- name: build CLI
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./tooling/cli/Cargo.toml --release
- name: Upload CLI
uses: actions/upload-artifact@v3
with:
name: cargo-tauri-${{ matrix.target.name }}${{ matrix.target.ext }}
path: tooling/cli/target/release/cargo-tauri${{ matrix.target.ext }}
if-no-files-found: error
upload:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download built CLIs
uses: actions/download-artifact@v3
with:
path: outputs
- name: Pack archives
run: ./.scripts/ci/pack-cli.sh
- name: Get CLI version
run: echo "CLI_VERSION=$(cat tooling/cli/metadata.json | jq '."cli.js".version' -r)" >> $GITHUB_ENV
- name: Publish release
uses: softprops/action-gh-release@50195ba7f6f93d1ac97ba8332a178e008ad176aa
with:
tag_name: cli.rs-v${{ env.CLI_VERSION }}
files: |
outputs/cargo-tauri-*.zip
outputs/cargo-tauri-*.tgz

18
.scripts/ci/pack-cli.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
set -euxo pipefail
for o in outputs/*; do
pushd "$o"
chmod +x cargo-tauri*
cp ../../tooling/cli/LICENSE* ../../tooling/cli/README.md .
target=$(basename "$o" | cut -d. -f1)
if grep -qE '(apple|windows)' <<< "$target"; then
zip "../${target}.zip" *
else
tar cv * | gzip -9 > "../${target}.tgz"
fi
popd
done

View File

@ -85,3 +85,14 @@ url = { version = "2.2", features = [ "serde" ] }
[profile.release]
lto = true
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/cli.rs-v{ version }/{ bin }-{ target }.{ archive-format }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-fmt = "zip"