88 lines
3.6 KiB
YAML
88 lines
3.6 KiB
YAML
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
|