add o3 #28
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release build | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- '*' | |
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-13 | |
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: Install toolchain dependencies (MacOS) | |
if: startsWith(matrix.os, 'macos') | |
run: brew install protobuf | |
- name: Install toolchain dependencies (Windows) | |
if: startsWith(matrix.os, 'windows') | |
run: choco install protoc | |
- 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 test --release --target ${{ matrix.target }} || exit 1 | |
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/[email protected] | |
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/[email protected] | |
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 |