Publish CLI binaries for cargo-binstall (#1358)

* add test release pipeline

* fix

* debug

* oops forgot checkout

* debug

* fix if

* blah

* fix working dir

* fix cargo build path

* add publish step

* add cache

* fix path

* use package instead of working dir

* fix cache path

* fix typo in checksum

* fix upload artifact loop

* add more comments

* add binstall metadata

* test simplified action

* fix target

* remove dispatch

* fix permissions

* remove mac arm config

* update comments

* update comment

* replace unmaintained actions-rs
This commit is contained in:
Evan Simkowitz 2023-08-15 11:41:32 -07:00 committed by GitHub
parent 555f4d5834
commit 3e24b3d34a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 0 deletions

54
.github/workflows/cli_release.yml vendored Normal file
View file

@ -0,0 +1,54 @@
name: Build CLI for Release
# Will run automatically on every new release
on:
release:
types: [published]
jobs:
build-and-upload:
permissions:
contents: write
runs-on: ${{ matrix.platform.os }}
strategy:
matrix:
platform:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
toolchain: "1.70.0",
}
- {
target: x86_64-apple-darwin,
os: macos-latest,
toolchain: "1.70.0",
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
toolchain: "1.70.0",
}
steps:
- uses: actions/checkout@v3
- name: Install stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.platform.toolchain }}
targets: ${{ matrix.platform.target }}
# Setup the Github Actions Cache for the CLI package
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
workspaces: packages/cli -> ../../target
# This neat action can build and upload the binary in one go!
- name: Build and upload binary
uses: taiki-e/upload-rust-binary-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.platform.target }}
bin: dx
archive: dx-${{ matrix.platform.target }}
checksum: sha256
manifest_path: packages/cli/Cargo.toml

View file

@ -100,3 +100,9 @@ name = "dx"
[dev-dependencies]
tempfile = "3.3"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/dx-{ target }{ archive-suffix }"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"