forked from smallcloudai/refact
-
Notifications
You must be signed in to change notification settings - Fork 0
175 lines (154 loc) · 5.86 KB
/
agent_engine_release.yml
File metadata and controls
175 lines (154 loc) · 5.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
name: Refact Agent Engine CI Release (Rust)
on:
workflow_dispatch:
push:
tags:
- engine/*
defaults:
run:
working-directory: refact-agent/engine
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
# RUSTFLAGS: "-D warnings -W unreachable-pub"
RUSTUP_MAX_RETRIES: 10
FETCH_DEPTH: 0 # pull in the tags for the version string
MACOSX_DEPLOYMENT_TARGET: 10.15
jobs:
dist:
strategy:
matrix:
include:
- os: windows-latest
target: x86_64-pc-windows-msvc
code-target: win32-x64
ext: .exe
whl-tag: win_amd64
- os: windows-latest
target: i686-pc-windows-msvc
code-target: win32-ia32
ext: .exe
- os: windows-latest
target: aarch64-pc-windows-msvc
code-target: win32-arm64
ext: .exe
whl-tag: win_arm64
- os: ubuntu-20.04
target: x86_64-unknown-linux-gnu
code-target: linux-x64
whl-tag: manylinux2014_x86_64
cross: true
- os: ubuntu-20.04
target: aarch64-unknown-linux-gnu
code-target: linux-arm64
whl-tag: manylinux2014_aarch64
cross: true
# - os: ubuntu-22.04
# target: arm-unknown-linux-gnueabihf
# code-target: linux-armhf
- os: macos-15-intel
target: x86_64-apple-darwin
code-target: darwin-x64
whl-tag: macosx_13_0_x86_64
- os: macos-14
target: aarch64-apple-darwin
code-target: darwin-arm64
whl-tag: macosx_13_0_arm64
env:
LLM_LS_TARGET: ${{ matrix.target }}
name: dist (${{ matrix.target }})
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: ${{ env.FETCH_DEPTH }}
- name: Install Rust toolchain
run: |
rustup update --no-self-update stable
rustup target add ${{ matrix.target }}
rustup component add rust-src
- name: setup cross-rs
if: matrix.cross
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: Install ARM target toolchain
if: matrix.target == 'arm-unknown-linux-gnueabihf'
run: sudo apt-get install gcc-arm-linux-gnueabihf
- name: Restore cached cargo
uses: swatinem/rust-cache@v2
with:
key: ${{ matrix.os }}-${{ matrix.target }}-cargo
shared-key: ${{ matrix.os }}-${{ matrix.target }}-cargo
- name: Build and test artifact
if: matrix.cross == null && startsWith(matrix.os, 'windows')
run: |
cargo test --release || exit 1
cargo build --release || exit 1
mkdir python_binding_and_cmdline/refact/bin
cp ./target/release/refact-lsp${{ matrix.ext }} python_binding_and_cmdline/refact/bin
cp ./target/release/refact-lsp${{ matrix.ext }} ../..
- name: Build and test artifact
if: matrix.cross == null && !startsWith(matrix.os, 'windows')
run: |
OPENSSL_STATIC=1 cargo test --release --target ${{ matrix.target }} || exit 1
OPENSSL_STATIC=1 cargo build --release --target ${{ matrix.target }} || exit 1
mkdir python_binding_and_cmdline/refact/bin
cp ./target/${{ matrix.target }}/release/refact-lsp${{ matrix.ext }} python_binding_and_cmdline/refact/bin
cp ./target/${{ matrix.target }}/release/refact-lsp${{ matrix.ext }} ../..
- name: build linux-like artifacts
if: matrix.cross
run: |
CROSS_NO_WARNINGS=0 cross test --release --target ${{ matrix.target }} || exit 1
CROSS_NO_WARNINGS=0 cross build --release --target ${{ matrix.target }} || exit 1
mkdir python_binding_and_cmdline/refact/bin
cp ./target/${{ matrix.target }}/release/refact-lsp${{ matrix.ext }} python_binding_and_cmdline/refact/bin
cp ./target/${{ matrix.target }}/release/refact-lsp${{ matrix.ext }} ../..
- if: matrix.whl-tag
shell: bash
env:
WHL_TAG: ${{ matrix.whl-tag }}
run: |
version=$(grep '^version' Cargo.toml | sed -E 's/version = "(.*)"/\1/')
sed -i.bak -E "s/version=\"[^\"]+\"/version=\"$version\"/" python_binding_and_cmdline/setup.py
pip install wheel build setuptools
python -m build --wheel --no-isolation python_binding_and_cmdline --outdir artefacts/
- name: Upload whl to release
uses: svenstaro/upload-release-action@v2
if: matrix.whl-tag
with:
repo_token: ${{ github.token }}
asset_name: whl-${{ matrix.target }}
file: artefacts/*.whl
tag: ${{ github.ref }}
overwrite: true
file_glob: true
- name: Upload whl pypi
if: matrix.whl-tag
run: |
pip install twine
twine upload -p ${{ secrets.PYPI_TOKEN }} --skip-existing artefacts/*.whl
- name: Package artifact in ZIP (WIN)
uses: vimtor/action-zip@v1.2
if: endsWith(matrix.target, 'msvc')
with:
files: refact-lsp.exe
recursive: false
dest: dist-${{ matrix.target }}.zip
- name: Package artifact in ZIP (UNIX)
uses: vimtor/action-zip@v1.2
if: ${{ !endsWith(matrix.target, 'msvc') }}
with:
files: refact-lsp
recursive: false
dest: dist-${{ matrix.target }}.zip
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ github.token }}
asset_name: dist-${{ matrix.target }}
file: dist-${{ matrix.target }}.zip
tag: ${{ github.ref }}
overwrite: true
file_glob: true