Skip to content

Commit c435a2e

Browse files
committed
ci: add multi-platform binary build + upload to release workflow
1 parent 0a931f3 commit c435a2e

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,58 @@ jobs:
8181
8282
- name: Publish qtcloud-data-cli
8383
run: cargo publish --allow-dirty --token ${{ secrets.CRATE_API_KEY }}
84+
85+
build-binary:
86+
needs: check
87+
strategy:
88+
matrix:
89+
include:
90+
- os: ubuntu-latest
91+
target: x86_64-unknown-linux-gnu
92+
ext: ""
93+
- os: macos-latest
94+
target: aarch64-apple-darwin
95+
ext: ""
96+
- os: windows-latest
97+
target: x86_64-pc-windows-msvc
98+
ext: ".exe"
99+
runs-on: ${{ matrix.os }}
100+
defaults:
101+
run:
102+
working-directory: src/cli
103+
steps:
104+
- uses: actions/checkout@v4
105+
with:
106+
ref: ${{ github.ref }}
107+
108+
- uses: actions-rust-lang/setup-rust-toolchain@v1
109+
with:
110+
target: ${{ matrix.target }}
111+
112+
- name: Clone dependency repos
113+
run: |
114+
mkdir -p /home/runner/work/packages
115+
git clone --depth 1 https://github.com/quanttide/quanttide-agent-toolkit.git /home/runner/work/packages/quanttide-agent-toolkit
116+
git clone --depth 1 https://github.com/quanttide/quanttide-data-toolkit.git /home/runner/work/packages/quanttide-data-toolkit
117+
118+
- name: Build binary
119+
run: cargo build --release --target ${{ matrix.target }}
120+
121+
- name: Package (Unix)
122+
if: matrix.os != 'windows-latest'
123+
run: |
124+
cd target/${{ matrix.target }}/release
125+
tar czf ../../../qtcloud-data-${{ matrix.target }}.tar.gz qtcloud-data
126+
127+
- name: Package (Windows)
128+
if: matrix.os == 'windows-latest'
129+
run: |
130+
cd target/${{ matrix.target }}/release
131+
7z a ../../../qtcloud-data-${{ matrix.target }}.zip qtcloud-data.exe
132+
133+
- name: Upload to Release
134+
uses: softprops/action-gh-release@v1
135+
with:
136+
files: |
137+
qtcloud-data-*.tar.gz
138+
qtcloud-data-*.zip

0 commit comments

Comments
 (0)