on: push: branches: master env: CARGO_TERM_COLOR: always jobs: build_x64: runs_on: docker steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Go toolchain uses: actions/setup-go@v4 with: go-version: '1.20' - name: Setup Rust toolchain uses: https://github.com/actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install additional dependencies run: apt update && apt-get install -y libclang-dev clang sshpass rsync - name: Compile release binary uses: https://github.com/actions-rs/cargo@v1 with: command: build args: --release --bin tfclient - name: Upload binary run: sshpass -p "${{ secrets.TRIFID_DLCDN_PASSWORD }}" rsync --mkpath -e 'ssh -p ${{ secrets.TRIFID_DLCDN_PORT }} -o StrictHostKeyChecking=no' target/release/tfclient ${{ secrets.TRIFID_DLCDN_USER }}@${{ secrets.TRIFID_DLCDN_IP }}:${{ secrets.TRIFID_DLCDN_PATH }}/tfclient/amd64/$GITHUB_SHA/tfclient build_arm64: runs_on: docker-arm64 steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Go toolchain uses: actions/setup-go@v4 with: go-version: '1.20' - name: Setup Rust toolchain uses: https://github.com/actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install aarch64 target run: rustup target add aarch64-unknown-linux-gnu - name: Install additional dependencies run: apt update && apt-get install -y libclang-dev clang sshpass rsync gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu - name: Compile release binary uses: https://github.com/actions-rs/cargo@v1 env: RUSTFLAGS: "-C linker=aarch64-linux-gnu-gcc" with: command: build args: --release --bin tfclient --target aarch64-unknown-linux-gnu - name: Upload binary run: sshpass -p "${{ secrets.TRIFID_DLCDN_PASSWORD }}" rsync --mkpath -e 'ssh -p ${{ secrets.TRIFID_DLCDN_PORT }} -o StrictHostKeyChecking=no' target/release/tfclient ${{ secrets.TRIFID_DLCDN_USER }}@${{ secrets.TRIFID_DLCDN_IP }}:${{ secrets.TRIFID_DLCDN_PATH }}/tfclient/arm64/$GITHUB_SHA/tfclient build_win64: runs_on: docker steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Go toolchain uses: actions/setup-go@v4 with: go-version: '1.20' - name: Setup Rust toolchain uses: https://github.com/actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Install cross-compilation toolchain run: rustup target add x86_64-pc-windows-gnu - name: Install additional dependencies run: apt update && apt-get install -y libclang-dev clang sshpass rsync mingw-w64 zip - name: Compile release binary uses: https://github.com/actions-rs/cargo@v1 with: command: build args: --release --bin tfclient --target x86_64-pc-windows-gnu - name: Compile release bundle run: ./build_windows.sh - name: Upload binary run: sshpass -p "${{ secrets.TRIFID_DLCDN_PASSWORD }}" rsync --mkpath -e 'ssh -p ${{ secrets.TRIFID_DLCDN_PORT }} -o StrictHostKeyChecking=no' target/x86_64-pc-windows-gnu/release/tfclient.zip ${{ secrets.TRIFID_DLCDN_USER }}@${{ secrets.TRIFID_DLCDN_IP }}:${{ secrets.TRIFID_DLCDN_PATH }}/tfclient/win64/$GITHUB_SHA/tfclient.zip