name: "Build artifacts" on: workflow_dispatch: env: TERMSCP_VERSION: "0.19.0" jobs: build-binaries: name: Build - ${{ matrix.platform.release_for }} strategy: matrix: platform: - release_for: MacOS-x86_64 os: macos-latest target: x86_64-apple-darwin script: macos.sh - release_for: MacOS-M1 os: macos-latest target: aarch64-apple-darwin script: macos.sh runs-on: ${{ matrix.platform.os }} steps: - uses: actions/checkout@v2 - uses: dtolnay/rust-toolchain@stable with: toolchain: stable targets: ${{ matrix.platform.target }} - name: Install dependencies run: | brew update brew install \ bison \ cpanminus \ cups \ flex \ gettext \ gmp \ gnutls \ icu4c \ jansson \ libarchive \ libbsd \ libunistring \ libgit2 \ libtirpc \ openldap \ pkg-config \ zlib brew link --force bison brew link --force cups brew link --force flex brew link --force gettext brew link --force gmp brew link --force gnutls brew link --force icu4c brew link --force jansson brew link --force libarchive brew link --force libbsd brew link --force libgit2 brew link --force libtirpc brew link --force libunistring brew link --force openldap brew link --force zlib cpanm Parse::Yapp::Driver - name: Build release run: cargo build --release --features smb-vendored --target ${{ matrix.platform.target }} - name: Prepare artifact files run: | mkdir -p .artifact mv target/${{ matrix.platform.target }}/release/termscp .artifact/termscp tar -czf .artifact/termscp-v${{ env.TERMSCP_VERSION }}-${{ matrix.platform.target }}.tar.gz -C .artifact termscp ls -l .artifact/ - name: "Upload artifact" uses: actions/upload-artifact@v4 with: if-no-files-found: error retention-days: 1 name: termscp-${{ matrix.platform.target }} path: .artifact/termscp-v${{ env.TERMSCP_VERSION }}-${{ matrix.platform.target }}.tar.gz