feat: improve ruby parsing (#1085) #32
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 | |
on: | |
push: | |
tags: [v\d+\.\d+\.\d+] | |
permissions: | |
contents: write | |
packages: write | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
create-release: | |
permissions: | |
contents: write | |
runs-on: ubuntu-20.04 | |
outputs: | |
release_id: ${{ steps.create-release.outputs.id }} | |
release_upload_url: ${{ steps.create-release.outputs.upload_url }} | |
release_body: "${{ steps.tag.outputs.message }}" | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
- name: Get version | |
id: get_version | |
uses: battila7/get-version-action@d97fbc34ceb64d1f5d95f4dfd6dce33521ccccf5 # ratchet:battila7/get-version-action@v2 | |
- name: Get tag message | |
id: tag | |
run: | | |
git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
echo "message<<EOF" >> $GITHUB_OUTPUT | |
echo "$(git tag -l --format='%(contents)' ${{ steps.get_version.outputs.version }})" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
- name: Create Release | |
id: create-release | |
uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 # ratchet:ncipollo/release-action@v1 | |
with: | |
draft: true | |
name: ${{ steps.get_version.outputs.version }} | |
tag: ${{ steps.get_version.outputs.version }} | |
body: "${{ steps.tag.outputs.message }}" | |
releases-matrix: | |
needs: [create-release] | |
strategy: | |
fail-fast: false | |
matrix: | |
feature: [lua51, luajit] | |
config: | |
- os: ubuntu-latest | |
os_name: linux | |
arch: aarch64 | |
rust_target: aarch64-unknown-linux-gnu | |
docker_platform: linux/aarch64 | |
container: quay.io/pypa/manylinux2014_aarch64 | |
- os: ubuntu-latest | |
os_name: linux | |
arch: x86_64 | |
rust_target: x86_64-unknown-linux-gnu | |
docker_platform: linux/amd64 | |
container: quay.io/pypa/manylinux2014_x86_64 # for glibc 2.17 | |
- os: macos-13 | |
os_name: darwin | |
arch: x86_64 | |
rust_target: x86_64-apple-darwin | |
- os: macos-latest | |
os_name: darwin | |
arch: aarch64 | |
rust_target: aarch64-apple-darwin | |
- os: windows-latest | |
os_name: windows | |
arch: x86_64 | |
rust_target: x86_64-pc-windows-msvc | |
- os: windows-latest | |
os_name: windows | |
arch: aarch64 | |
rust_target: aarch64-pc-windows-msvc | |
runs-on: ${{ matrix.config.os }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 | |
# Step 1: Set up QEMU for multi-architecture support | |
- name: Set up QEMU | |
if: ${{ matrix.config.docker_platform == 'linux/aarch64' }} | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: all | |
- uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # ratchet:Swatinem/rust-cache@v2 | |
if: ${{ matrix.config.container == null }} | |
- uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a # ratchet:dtolnay/rust-toolchain@master | |
if: ${{ matrix.config.container == null }} | |
with: | |
targets: ${{ matrix.config.rust_target }} | |
toolchain: 1.80.0 | |
- name: Build all crates | |
if: ${{ matrix.config.container == null }} | |
run: | | |
cargo build --release --features ${{ matrix.feature }} | |
- name: Build all crates with glibc 2.17 # for glibc 2.17 | |
if: ${{ matrix.config.container != null }} | |
run: | | |
# sudo apt-get install -y qemu qemu-user-static | |
docker run \ | |
--rm \ | |
-v $(pwd):/workspace \ | |
-w /workspace \ | |
--platform ${{ matrix.config.docker_platform }} \ | |
${{ matrix.config.container }} \ | |
bash -c "yum install -y openssl-devel && curl --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal && . /root/.cargo/env && cargo build --release --features ${{ matrix.feature }}" | |
- name: Handle binaries | |
if: ${{ matrix.config.os_name != 'windows' }} | |
shell: bash | |
run: | | |
mkdir -p results | |
if [ "${{ matrix.config.os_name }}" == "linux" ]; then | |
EXT="so" | |
else | |
EXT="dylib" | |
fi | |
cp target/release/libavante_templates.$EXT results/avante_templates.$EXT | |
cp target/release/libavante_tokenizers.$EXT results/avante_tokenizers.$EXT | |
cp target/release/libavante_repo_map.$EXT results/avante_repo_map.$EXT | |
cd results | |
tar zcvf avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.tar.gz *.${EXT} | |
- name: Handle binaries (Windows) | |
if: ${{ matrix.config.os_name == 'windows' }} | |
shell: pwsh | |
run: | | |
New-Item -ItemType Directory -Force -Path results | |
Copy-Item -Path "target\release\avante_templates.dll" -Destination "results\avante_templates.dll" | |
Copy-Item -Path "target\release\avante_tokenizers.dll" -Destination "results\avante_tokenizers.dll" | |
Copy-Item -Path "target\release\avante_repo_map.dll" -Destination "results\avante_repo_map.dll" | |
Set-Location -Path results | |
$dllFiles = Get-ChildItem -Filter "*.dll" | Select-Object -ExpandProperty Name | |
Compress-Archive -Path $dllFiles -DestinationPath "avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.zip" | |
- name: Upload Release Asset | |
uses: shogo82148/actions-upload-release-asset@8482bd769644976d847e96fb4b9354228885e7b4 # ratchet:shogo82148/actions-upload-release-asset@v1 | |
if: ${{ matrix.config.os_name != 'windows' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ASSET_NAME: avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.tar.gz | |
with: | |
upload_url: ${{ needs.create-release.outputs.release_upload_url }} | |
asset_path: ./results/avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.tar.gz | |
- name: Upload Release Asset (Windows) | |
uses: shogo82148/actions-upload-release-asset@8482bd769644976d847e96fb4b9354228885e7b4 # ratchet:shogo82148/actions-upload-release-asset@v1 | |
if: ${{ matrix.config.os_name == 'windows' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ASSET_NAME: avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.zip | |
with: | |
upload_url: ${{ needs.create-release.outputs.release_upload_url }} | |
asset_path: ./results/avante_lib-${{ matrix.config.os_name }}-${{ matrix.config.arch }}-${{ matrix.feature }}.zip | |
publish-release: | |
permissions: | |
contents: write | |
runs-on: ubuntu-20.04 | |
needs: [create-release, releases-matrix] | |
steps: | |
- name: publish release | |
id: publish-release | |
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # ratchet:actions/github-script@v6 | |
env: | |
release_id: ${{ needs.create-release.outputs.release_id }} | |
with: | |
script: | | |
github.rest.repos.updateRelease({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
release_id: process.env.release_id, | |
draft: false, | |
prerelease: false | |
}) |