From 87449e29e7e976da2d5c00dfd0a5d14486b38872 Mon Sep 17 00:00:00 2001 From: ryan kurte Date: Fri, 8 Oct 2021 11:38:38 +1300 Subject: [PATCH 1/2] Swap macos to zip, update binary lookup for binstall --- .cargo/config | 9 +++++++++ .github/workflows/rust.yml | 28 ++++++++++++++++++---------- Cargo.toml | 2 ++ 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.cargo/config b/.cargo/config index 0c1c209f..3eec48fd 100644 --- a/.cargo/config +++ b/.cargo/config @@ -1,2 +1,11 @@ [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" + +[target.armv7-unknown-linux-musleabihf] +linker = "arm-linux-musleabihf-gcc" + +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" + +[target.aarch64-unknown-linux-musl] +linker = "aarch64-linux-musl-gcc" diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 006f8be5..e9188a6b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -26,7 +26,7 @@ jobs: - target: x86_64-apple-darwin os: macos-latest output: cargo-binstall - archive: tgz + archive: zip - target: armv7-unknown-linux-gnueabihf os: ubuntu-20.04 output: cargo-binstall @@ -83,14 +83,18 @@ jobs: - name: Copy and rename utility run: cp target/${{ matrix.target }}/release/${{ matrix.output }} ${{ matrix.output }} - - name: Create archive (tgz) - if: ${{ matrix.target != 'x86_64-pc-windows-msvc' }} + - name: Create archive (tgz, linux) + if: ${{ matrix.os != 'macos-latest' && matrix.os != 'windows-latest' }} run: tar -czvf cargo-binstall-${{ matrix.target }}.tgz ${{ matrix.output }} - - name: Create archive (zip) - if: ${{ matrix.target == 'x86_64-pc-windows-msvc' }} + - name: Create archive (zip, windows) + if: ${{ matrix.os == 'windows-latest' }} run: tar.exe -a -c -f cargo-binstall-${{ matrix.target }}.zip ${{ matrix.output }} + - name: Create archive (zip, macos) + if: ${{ matrix.os == 'macos-latest' }} + run: zip cargo-binstall-${{ matrix.target }}.zip ${{ matrix.output }} + - name: Upload artifacts uses: actions/upload-artifact@v1 with: @@ -122,7 +126,7 @@ jobs: - target: x86_64-apple-darwin os: macos-latest output: cargo-binstall - archive: tgz + archive: zip - target: x86_64-pc-windows-msvc os: windows-latest output: cargo-binstall.exe @@ -136,13 +140,17 @@ jobs: with: name: cargo-binstall-${{ matrix.target }}.${{ matrix.archive }} - - name: "Extract build artifact (tgz)" - if: ${{ matrix.target != 'x86_64-pc-windows-msvc' }} + - name: "Extract build artifact (tgz, linux)" + if: ${{ matrix.os != 'windows-latest' && matrix.os != 'macos-latest' }} run: tar -xvf cargo-binstall-${{ matrix.target }}.tgz - - name: "Extract build artifact (zip)" - if: ${{ matrix.target == 'x86_64-pc-windows-msvc' }} + - name: "Extract build artifact (zip, windows)" + if: ${{ matrix.os == 'windows-latest' }} run: tar.exe -xvf cargo-binstall-${{ matrix.target }}.zip + + - name: "Extract build artifact (zip, macos)" + if: ${{ matrix.os == 'macos-latest' }} + run: unzip cargo-binstall-${{ matrix.target }}.zip - name: "Run binstall" run: ./${{ matrix.output }} cargo-binstall --manifest-path . --no-confirm diff --git a/Cargo.toml b/Cargo.toml index cf2a4b2c..dea12f97 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,8 @@ bin-dir = "{ bin }{ format }" [package.metadata.binstall.overrides.x86_64-pc-windows-msvc] pkg-fmt = "zip" +[package.metadata.binstall.overrides.x86_64-apple-darwin] +pkg-fmt = "zip" [dependencies] crates_io_api = "0.7.0" From 7aaba5e1ee2c8122389f334539e3d9cd7a892643 Mon Sep 17 00:00:00 2001 From: ryan kurte Date: Fri, 8 Oct 2021 12:16:14 +1300 Subject: [PATCH 2/2] improve debug logging on extraction --- src/helpers.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers.rs b/src/helpers.rs index bc1f3479..dce5c9f3 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -50,7 +50,7 @@ pub fn extract, P: AsRef>(source: S, fmt: PkgFmt, path: P) match fmt { PkgFmt::Tar => { // Extract to install dir - debug!("Extracting from archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); + debug!("Extracting from tar archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); let dat = std::fs::File::open(source)?; let mut tar = Archive::new(dat); @@ -59,7 +59,7 @@ pub fn extract, P: AsRef>(source: S, fmt: PkgFmt, path: P) }, PkgFmt::Tgz => { // Extract to install dir - debug!("Decompressing from archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); + debug!("Decompressing from tgz archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); let dat = std::fs::File::open(source)?; let tar = GzDecoder::new(dat); @@ -69,7 +69,7 @@ pub fn extract, P: AsRef>(source: S, fmt: PkgFmt, path: P) }, PkgFmt::Txz => { // Extract to install dir - debug!("Decompressing from archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); + debug!("Decompressing from txz archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); let dat = std::fs::File::open(source)?; let tar = XzDecoder::new(dat); @@ -79,7 +79,7 @@ pub fn extract, P: AsRef>(source: S, fmt: PkgFmt, path: P) }, PkgFmt::Zip => { // Extract to install dir - debug!("Decompressing from archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); + debug!("Decompressing from zip archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); let dat = std::fs::File::open(source)?; let mut zip = ZipArchive::new(dat)?; @@ -87,7 +87,7 @@ pub fn extract, P: AsRef>(source: S, fmt: PkgFmt, path: P) zip.extract(path)?; }, PkgFmt::Bin => { - debug!("Copying data from archive '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); + debug!("Copying binary '{:?}' to `{:?}`", source.as_ref(), path.as_ref()); // Copy to install dir std::fs::copy(source, path)?; },