From fefbe19a3c594babc7bafa7997ad968b0df44a30 Mon Sep 17 00:00:00 2001 From: Chip Senkbeil Date: Wed, 5 Jul 2023 18:30:44 -0500 Subject: [PATCH] Switch to stripping using cargo and supporting a latest release tag --- .github/workflows/lock.yml | 28 +++ .github/workflows/release.yml | 447 +++++++++++----------------------- Cargo.toml | 1 + 3 files changed, 167 insertions(+), 309 deletions(-) create mode 100644 .github/workflows/lock.yml diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 0000000..2f04502 --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,28 @@ +name: 'Lock Threads' + +on: + schedule: + - cron: '0 3 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +concurrency: + group: lock + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v4 + with: + issue-inactive-days: '30' + issue-comment: > + I'm going to lock this issue because it has been closed for _30 days_ ⏳. + This helps our maintainers find and focus on the active issues. + If you have found a problem that seems similar to this, please open a new + issue and complete the issue template so we can capture all the details + necessary to investigate further. + process-only: 'issues' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1106029..60a315c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,360 +5,212 @@ on: tags: - v[0-9]+.[0-9]+.[0-9]+ - v[0-9]+.[0-9]+.[0-9]+-** + - latest + +# Targets: +# +# - x86_64-apple-darwin +# - aarch64-apple-darwin +# +# - x86_64-pc-windows-msvc +# - aarch64-pc-windows-msvc +# +# - x86_64-unknown-linux-gnu +# - aarch64-unknown-linux-gnu +# - aarch64-linux-android (fails due to termios) +# - armv7-unknown-linux-gnueabihf +# +# - x86_64-unknown-linux-musl +# - aarch64-unknown-linux-musl +# +# - x86_64-unknown-freebsd +# - aarch64-unknown-freebsd (works manually, but cannot cross-compile) +# +# - x86_64-unknown-netbsd (???) +# - aarch64-unknown-netbsd (???) +# +# - x86_64-unknown-openbsd (???) +# - aarch64-unknown-openbsd (fails due to openssl-src) +# jobs: macos: - name: "Build release on MacOS" + name: "Build release on MacOS (${{ matrix.target }})" runs-on: macos-11.0 - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: macos - X86_ARCH: x86_64-apple-darwin - ARM_ARCH: aarch64-apple-darwin - X86_DIR: target/x86_64-apple-darwin/release - ARM_DIR: target/aarch64-apple-darwin/release - BUILD_BIN: distant - UNIVERSAL_REL_BIN: distant-macos + strategy: + matrix: + target: + - x86_64-apple-darwin + - aarch64-apple-darwin steps: - uses: actions/checkout@v3 - - name: Install Rust (x86) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ env.X86_ARCH }} - - name: Install Rust (ARM) + - name: Install Rust (${{ matrix.target }}) uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - target: ${{ env.ARM_ARCH }} + target: ${{ matrix.target }} + override: true - uses: Swatinem/rust-cache@v2 - - name: Build binary (x86_64) - run: | - cargo build --release --all-features --target ${{ env.X86_ARCH }} - ls -l ./${{ env.X86_DIR }} - strip ./${{ env.X86_DIR }}/${{ env.BUILD_BIN }} - - name: Build binary (aarch64) - run: | - cargo build --release --all-features --target ${{ env.ARM_ARCH }} - ls -l ./${{ env.ARM_DIR }} - strip ./${{ env.ARM_DIR }}/${{ env.BUILD_BIN }} - - name: Unify binaries + - name: Build binary (${{ matrix.target }}) run: | - lipo -create -output ${{ env.UNIVERSAL_REL_BIN }} \ - ./${{ env.X86_DIR }}/${{ env.BUILD_BIN }} \ - ./${{ env.ARM_DIR }}/${{ env.BUILD_BIN }} - chmod +x ./${{ env.UNIVERSAL_REL_BIN }} + cargo build --release --all-features --target ${{ matrix.target }} + mv ./target/${{ matrix.target }}/release/distant ./distant-${{ matrix.target }} + chmod +x ./distant-${{ matrix.target }} - name: Upload uses: actions/upload-artifact@v2 with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.UNIVERSAL_REL_BIN }} + name: ${{ matrix.target }} + path: ./distant-${{ matrix.target }} windows: - name: "Build release on Windows" + name: "Build release on Windows (${{ matrix.target }})" runs-on: windows-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: win64 - X86_ARCH: x86_64-pc-windows-msvc - X86_DIR: target/x86_64-pc-windows-msvc/release - BUILD_BIN: distant.exe - X86_REL_BIN: distant-win64.exe + strategy: + matrix: + target: + - x86_64-pc-windows-msvc + - aarch64-pc-windows-msvc steps: - uses: actions/checkout@v2 - - name: Install Rust (MSVC) + - name: Install Rust (${{ matrix.target }}) uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - target: ${{ env.X86_ARCH }} - - uses: Swatinem/rust-cache@v2 - - name: Build binary (x86_64) - run: | - cargo build --release --all-features --target ${{ env.X86_ARCH }} - ls -l ./${{ env.X86_DIR }} - strip ./${{ env.X86_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.X86_DIR }}/${{ env.BUILD_BIN }} ./${{ env.X86_REL_BIN }} - chmod +x ./${{ env.X86_REL_BIN }} - - name: Upload - uses: actions/upload-artifact@v2 - with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.X86_REL_BIN }} - - linux_gnu_x86: - name: "Build release on Linux (GNU x86)" - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: linux64-gnu-x86 - X86_GNU_ARCH: x86_64-unknown-linux-gnu - X86_GNU_DIR: target/x86_64-unknown-linux-gnu/release - BUILD_BIN: distant - X86_GNU_REL_BIN: distant-linux64-gnu-x86 - steps: - - uses: actions/checkout@v2 - - name: Install Rust (GNU x86) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ env.X86_GNU_ARCH }} - - uses: Swatinem/rust-cache@v2 - - name: Build binary (GNU x86_64) - run: | - cargo build --release --all-features --target ${{ env.X86_GNU_ARCH }} - ls -l ./${{ env.X86_GNU_DIR }} - strip ./${{ env.X86_GNU_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.X86_GNU_DIR }}/${{ env.BUILD_BIN }} ./${{ env.X86_GNU_REL_BIN }} - chmod +x ./${{ env.X86_GNU_REL_BIN }} - - name: Upload - uses: actions/upload-artifact@v2 - with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.X86_GNU_REL_BIN }} - - linux_gnu_aarch64: - name: "Build release on Linux (GNU aarch64)" - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: linux64-gnu-aarch64 - AARCH64_GNU_ARCH: aarch64-unknown-linux-gnu - AARCH64_GNU_DIR: target/aarch64-unknown-linux-gnu/release - BUILD_BIN: distant - AARCH64_GNU_REL_BIN: distant-linux64-gnu-aarch64 - steps: - - uses: actions/checkout@v2 - - name: Install Rust (GNU aarch64) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ env.AARCH64_GNU_ARCH }} - - uses: Swatinem/rust-cache@v2 - - name: Install linker & binutils (gcc-aarch64-linux-gnu) - run: | - sudo apt update - sudo apt install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu - - name: Build binary (GNU aarch64) - run: | - cargo build --release --all-features --target ${{ env.AARCH64_GNU_ARCH }} - ls -l ./${{ env.AARCH64_GNU_DIR }} - /usr/aarch64-linux-gnu/bin/strip ./${{ env.AARCH64_GNU_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.AARCH64_GNU_DIR }}/${{ env.BUILD_BIN }} ./${{ env.AARCH64_GNU_REL_BIN }} - chmod +x ./${{ env.AARCH64_GNU_REL_BIN }} - - name: Upload - uses: actions/upload-artifact@v2 - with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.AARCH64_GNU_REL_BIN }} - - linux_gnu_arm_v7: - name: "Build release on Linux (GNU arm-v7)" - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: linux64-gnu-arm-v7 - ARMV7_GNU_ARCH: armv7-unknown-linux-gnueabihf - ARMV7_GNU_DIR: target/armv7-unknown-linux-gnueabihf/release - BUILD_BIN: distant - ARMV7_GNU_REL_BIN: distant-linux64-gnu-arm-v7 - steps: - - uses: actions/checkout@v2 - - name: Install Rust (GNU arm-v7) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ env.ARMV7_GNU_ARCH }} + target: ${{ matrix.target }} + override: true - uses: Swatinem/rust-cache@v2 - - name: Install linker & binutils (gcc-arm-linux-gnueabihf) + - name: Build binary (${{ matrix.target }}) run: | - sudo apt update - sudo apt install -y gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihf - - name: Build binary (GNU arm-v7) - run: | - cargo build --release --all-features --target ${{ env.ARMV7_GNU_ARCH }} - ls -l ./${{ env.ARMV7_GNU_DIR }} - /usr/arm-linux-gnueabihf/bin/strip ./${{ env.ARMV7_GNU_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.ARMV7_GNU_DIR }}/${{ env.BUILD_BIN }} ./${{ env.ARMV7_GNU_REL_BIN }} - chmod +x ./${{ env.ARMV7_GNU_REL_BIN }} + cargo build --release --all-features --target ${{ matrix.target }} + mv ./target/${{ matrix.target }}/release/distant.exe ./distant-${{ matrix.target }}.exe + chmod +x ./distant-${{ matrix.target }}.exe - name: Upload uses: actions/upload-artifact@v2 with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.ARMV7_GNU_REL_BIN }} + name: ${{ matrix.target }} + path: ./distant-${{ matrix.target }}.exe - # NOTE: For musl, we only support ssh2 and not libssh for the time being due to some - # build issue with libssh-rs-sys not finding the symbol ENGINE_cleanup in libcrypto - linux_musl_x86: - name: "Build release on Linux (musl x86)" + linux: + name: "Build release on Linux (${{ matrix.target }})" runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: linux64-musl-x86 - X86_MUSL_ARCH: x86_64-unknown-linux-musl - X86_MUSL_DIR: target/x86_64-unknown-linux-musl/release - BUILD_BIN: distant - X86_MUSL_REL_BIN: distant-linux64-musl-x86 + strategy: + matrix: + include: + - target: x86_64-unknown-linux-gnu + build: --all-features + - target: aarch64-unknown-linux-gnu + build: --all-features + deps: gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu + - target: armv7-unknown-linux-gnueabihf + build: --all-features + deps: gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihf + - target: x86_64-unknown-linux-musl + build: --no-default-features --features ssh2 + deps: musl-tools + - target: aarch64-unknown-linux-musl + build: --no-default-features --features ssh2 + deps: musl-tools gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu steps: - uses: actions/checkout@v2 - - name: Install Rust (MUSL x86) + - name: Install Rust (${{ matrix.target }}) uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - target: ${{ env.X86_MUSL_ARCH }} + target: ${{ matrix.target }} override: true - - name: Install musl tools + - uses: Swatinem/rust-cache@v2 + - name: Install dependencies + if: ${{ matrix.deps }} run: | sudo apt update - sudo apt install -y musl-tools - - uses: Swatinem/rust-cache@v2 - - name: Build binary (MUSL x86_64) + sudo apt install -y ${{ matrix.deps }} + - name: Build binary (${{ matrix.target }}) run: | - cargo build --release --no-default-features --features ssh2 --target ${{ env.X86_MUSL_ARCH }} - ls -l ./${{ env.X86_MUSL_DIR }} - strip ./${{ env.X86_MUSL_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.X86_MUSL_DIR }}/${{ env.BUILD_BIN }} ./${{ env.X86_MUSL_REL_BIN }} - chmod +x ./${{ env.X86_MUSL_REL_BIN }} + cargo build --release ${{ matrix.build }} --target ${{ matrix.target }} + mv ./target/${{ matrix.target }}/release/distant ./distant-${{ matrix.target }} + chmod +x ./distant-${{ matrix.target }} - name: Upload uses: actions/upload-artifact@v2 with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.X86_MUSL_REL_BIN }} + name: ${{ matrix.target }} + path: ./distant-${{ matrix.target }} - # NOTE: For musl, we only support ssh2 and not libssh for the time being due to some - # build issue with libssh-rs-sys not finding the symbol ENGINE_cleanup in libcrypto - linux_musl_aarch64: - name: "Build release on Linux (musl aarch64)" - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') - env: - UPLOAD_NAME: linux64-musl-aarch64 - AARCH64_MUSL_ARCH: aarch64-unknown-linux-musl - AARCH64_MUSL_DIR: target/aarch64-unknown-linux-musl/release - BUILD_BIN: distant - AARCH64_MUSL_REL_BIN: distant-linux64-musl-aarch64 + bsd: + name: "Build release on BSD (${{ matrix.os.target }})" + runs-on: ${{ matrix.os.host }} + strategy: + matrix: + os: + - name: freebsd + architecture: x86-64 + version: '13.2' + host: macos-12 + target: x86_64-unknown-freebsd + build: --all-features + prepare: pkg install -y openssl gmake lang/rust devel/llvm-devel + - name: openbsd + architecture: x86-64 + version: '7.3' + host: macos-12 + target: x86_64-unknown-openbsd + build: --all-features + prepare: pkg_add -I gmake rust llvm steps: - - uses: actions/checkout@v2 - - name: Install Rust (MUSL aarch64) - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ env.AARCH64_MUSL_ARCH }} - override: true - - name: Install musl tools - run: | - sudo apt update - sudo apt install -y musl-tools gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu - - name: Install cross - env: - LINK: https://github.com/cross-rs/cross/releases/download - CROSS_VERSION: 0.2.4 - CROSS_FILE: cross-x86_64-unknown-linux-musl - run: | - curl -L "$LINK/v$CROSS_VERSION/$CROSS_FILE.tar.gz" | - tar xz -C $HOME/.cargo/bin + - uses: actions/checkout@v3 - uses: Swatinem/rust-cache@v2 - - name: Build binary (MUSL aarch64) - run: | - cross build --release --no-default-features --features ssh2 --target ${{ env.AARCH64_MUSL_ARCH }} - ls -l ./${{ env.AARCH64_MUSL_DIR }} - aarch64-linux-gnu-strip ./${{ env.AARCH64_MUSL_DIR }}/${{ env.BUILD_BIN }} - mv ./${{ env.AARCH64_MUSL_DIR }}/${{ env.BUILD_BIN }} ./${{ env.AARCH64_MUSL_REL_BIN }} - chmod +x ./${{ env.AARCH64_MUSL_REL_BIN }} + - name: Build in FreeBSD + uses: cross-platform-actions/action@v0.15.0 + with: + operating_system: ${{ matrix.os.name }} + architecture: ${{ matrix.os.architecture }} + version: ${{ matrix.os.version }} + shell: bash + run: | + ${{ matrix.os.prepare }} + cargo build --release ${{ matrix.os.build }} --target ${{ matrix.os.target }} + mv ./target/${{ matrix.os.target }}/release/distant ./distant-${{ matrix.os.target }} + chmod +x ./distant-${{ matrix.os.target }} - name: Upload uses: actions/upload-artifact@v2 with: - name: ${{ env.UPLOAD_NAME }} - path: | - ${{ env.AARCH64_MUSL_REL_BIN }} + name: ${{ matrix.os.target }} + path: ./distant-${{ matrix.os.target }} publish: - needs: [macos, windows, linux_gnu_x86, linux_gnu_aarch64, linux_gnu_arm_v7, linux_musl_x86, linux_musl_aarch64] + needs: [macos, windows, linux, bsd] runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') permissions: contents: write - env: - MACOS: macos - MACOS_UNIVERSAL_BIN: distant-macos - WIN64: win64 - WIN64_BIN: distant-win64.exe - LINUX64_GNU_X86: linux64-gnu-x86 - LINUX64_GNU_X86_BIN: distant-linux64-gnu-x86 - LINUX64_GNU_AARCH64: linux64-gnu-aarch64 - LINUX64_GNU_AARCH64_BIN: distant-linux64-gnu-aarch64 - LINUX64_GNU_ARMV7: linux64-gnu-arm-v7 - LINUX64_GNU_ARMV7_BIN: distant-linux64-gnu-arm-v7 - LINUX64_MUSL_X86: linux64-musl-x86 - LINUX64_MUSL_X86_BIN: distant-linux64-musl-x86 - LINUX64_MUSL_AARCH64: linux64-musl-aarch64 - LINUX64_MUSL_AARCH64_BIN: distant-linux64-musl-aarch64 steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 - - name: Generate MacOS SHA256 checksums - run: | - cd ${{ env.MACOS }} - sha256sum ${{ env.MACOS_UNIVERSAL_BIN }} > ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum - echo "SHA_MACOS_BIN=$(cat ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Win64 SHA256 checksums - run: | - cd ${{ env.WIN64 }} - sha256sum ${{ env.WIN64_BIN }} > ${{ env.WIN64_BIN }}.sha256sum - echo "SHA_WIN64_BIN=$(cat ${{ env.WIN64_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Linux64 (gnu x86) SHA256 checksums - run: | - cd ${{ env.LINUX64_GNU_X86 }} - sha256sum ${{ env.LINUX64_GNU_X86_BIN }} > ${{ env.LINUX64_GNU_X86_BIN }}.sha256sum - echo "SHA_LINUX64_GNU_X86_BIN=$(cat ${{ env.LINUX64_GNU_X86_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Linux64 (gnu aarch64) SHA256 checksums + - name: Generate SHA256 checksums run: | - cd ${{ env.LINUX64_GNU_AARCH64 }} - sha256sum ${{ env.LINUX64_GNU_AARCH64_BIN }} > ${{ env.LINUX64_GNU_AARCH64_BIN }}.sha256sum - echo "SHA_LINUX64_GNU_AARCH64_BIN=$(cat ${{ env.LINUX64_GNU_AARCH64_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Linux64 (gnu arm-v7) SHA256 checksums - run: | - cd ${{ env.LINUX64_GNU_ARMV7 }} - sha256sum ${{ env.LINUX64_GNU_ARMV7_BIN }} > ${{ env.LINUX64_GNU_ARMV7_BIN }}.sha256sum - echo "SHA_LINUX64_GNU_ARMV7_BIN=$(cat ${{ env.LINUX64_GNU_ARMV7_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Linux64 (musl x86) SHA256 checksums - run: | - cd ${{ env.LINUX64_MUSL_X86 }} - sha256sum ${{ env.LINUX64_MUSL_X86_BIN }} > ${{ env.LINUX64_MUSL_X86_BIN }}.sha256sum - echo "SHA_LINUX64_MUSL_X86_BIN=$(cat ${{ env.LINUX64_MUSL_X86_BIN }}.sha256sum)" >> $GITHUB_ENV - - name: Generate Linux64 (musl aarch64) SHA256 checksums - run: | - cd ${{ env.LINUX64_MUSL_AARCH64 }} - sha256sum ${{ env.LINUX64_MUSL_AARCH64_BIN }} > ${{ env.LINUX64_MUSL_AARCH64_BIN }}.sha256sum - echo "SHA_LINUX64_MUSL_AARCH64_BIN=$(cat ${{ env.LINUX64_MUSL_AARCH64_BIN }}.sha256sum)" >> $GITHUB_ENV + for i in $(find . -name "distant-*" -type f); do + echo "Generating checksum for ${i}" + sha256sum "${i}" > "${i}.sha256sum" + done - name: Determine git tag if: github.event_name == 'push' run: | TAG_NAME=${{ github.ref }} echo "TAG_NAME=${TAG_NAME#refs/tags/}" >> $GITHUB_ENV echo "TAG_VERSION=${TAG_NAME#refs/tags/v}" >> $GITHUB_ENV - - name: Check git tag for pre-release + - name: Check git tag for pre-release or latest id: check-tag run: | if [[ ${{ github.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+-.*$ ]]; then echo ::set-output name=match::true + elif [[ ${{ github.ref }} =~ ^refs/tags/latest$ ]]; then + echo ::set-output name=latest::true fi - name: Print pre-release status run: | echo "Is ${{ github.ref }} a pre-release: ${{ steps.check-tag.outputs.match }}" + echo "Is ${{ github.ref }} latest: ${{ steps.check-tag.outputs.latest }}" - name: Get Changelog Entry id: changelog uses: mindsers/changelog-reader-action@v2 @@ -374,33 +226,10 @@ jobs: draft: false prerelease: ${{ steps.check-tag.outputs.match == 'true' }} files: | - ${{ env.MACOS }}/${{ env.MACOS_UNIVERSAL_BIN }} - ${{ env.WIN64 }}/${{ env.WIN64_BIN }} - ${{ env.LINUX64_GNU_X86 }}/${{ env.LINUX64_GNU_X86_BIN }} - ${{ env.LINUX64_GNU_AARCH64 }}/${{ env.LINUX64_GNU_AARCH64_BIN }} - ${{ env.LINUX64_GNU_ARMV7 }}/${{ env.LINUX64_GNU_ARMV7_BIN }} - ${{ env.LINUX64_MUSL_X86 }}/${{ env.LINUX64_MUSL_X86_BIN }} - ${{ env.LINUX64_MUSL_AARCH64 }}/${{ env.LINUX64_MUSL_AARCH64_BIN }} + **/distant-* **/*.sha256sum body: | - ## Release Notes - ${{ steps.changelog.outputs.changes }} - ## Binaries - Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7). - - **linux64-gnu-x86** is the x86-64 release on Linux using libc - - **linux64-gnu-aarch64** is the aarch64 release on Linux using libc - - **linux64-gnu-arm-v7** is the arm-v7 release on Linux using libc (for Raspberry PI) - - **linux64-musl-x86** is the x86-64 release on Linux using musl (static binary, no libc dependency) - - **linux64-musl-aarch64** is the aarch64 release on Linux using musl (static binary, no libc dependency) - - **macos** is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms - - **win64** is the x86-64 release on Windows using MSVC - ## SHA256 Checksums - ``` - ${{ env.SHA_MACOS_BIN }} - ${{ env.SHA_WIN64_BIN }} - ${{ env.SHA_LINUX64_GNU_X86_BIN }} - ${{ env.SHA_LINUX64_GNU_AARCH64_BIN }} - ${{ env.SHA_LINUX64_GNU_ARMV7_BIN }} - ${{ env.SHA_LINUX64_MUSL_X86_BIN }} - ${{ env.SHA_LINUX64_MUSL_AARCH64_BIN }} - ``` + ## Latest + + This is the latest commit (${{ github.sha }}) built for testing. + This is not guaranteed to pass all tests or even function properly. diff --git a/Cargo.toml b/Cargo.toml index 79c034c..8abd221 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,7 @@ members = [ opt-level = 'z' lto = true codegen-units = 1 +strip = true [features] default = ["libssh", "ssh2"]