Skip to content

Full Release Pipeline #11

Full Release Pipeline

Full Release Pipeline #11

Workflow file for this run

name: Full Release Pipeline
on:
push:
tags:
- 'v*'
jobs:
release:
name: Build & Publish for ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: linux-x64
bin_name: latex_math_symbol
- os: windows-latest
target: win32-x64
bin_name: latex_math_symbol.exe
- os: macos-latest
target: darwin-x64
bin_name: latex_math_symbol
cmake_arch: "x86_64"
- os: macos-latest
target: darwin-arm64
bin_name: latex_math_symbol
cmake_arch: "arm64"
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install C++ Build Tools (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install -y flex bison
- name: Install C++ Build Tools (Windows)
if: matrix.os == 'windows-latest'
run: choco install winflexbison3
- name: Install C++ Build Tools & Set Path (macOS)
if: matrix.os == 'macos-latest'
run: |
brew install flex bison
echo "/opt/homebrew/opt/bison/bin" >> $GITHUB_PATH
echo "/usr/local/opt/bison/bin" >> $GITHUB_PATH
echo "/opt/homebrew/opt/flex/bin" >> $GITHUB_PATH
echo "/usr/local/opt/flex/bin" >> $GITHUB_PATH
- name: Build Backend (Ubuntu & Windows)
if: matrix.os != 'macos-latest'
run: |
cd backend/cpp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
shell: bash
- name: Build Backend (macOS)
if: matrix.os == 'macos-latest'
run: |
cd backend/cpp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="${{ matrix.cmake_arch }}"
cmake --build . --config Release
shell: bash
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
cache-dependency-path: 'frontend/latex-math-symbol/package-lock.json'
- name: Install Extension Dependencies
run: |
cd frontend/latex-math-symbol
npm install
- name: Prepare Binary for Packaging
run: |
mkdir -p frontend/latex-math-symbol/bin
if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp backend/cpp/build/Release/${{ matrix.bin_name }} frontend/latex-math-symbol/bin/
else
cp backend/cpp/build/${{ matrix.bin_name }} frontend/latex-math-symbol/bin/
fi
shell: bash
- name: Package Extension
run: |
cd frontend/latex-math-symbol
npx @vscode/vsce package --target ${{ matrix.target }} -o ../../latex-math-symbol-${{ matrix.target }}.vsix
shell: bash
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v1
with:
files: latex-math-symbol-${{ matrix.target }}.vsix
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}