Skip to content

refactor option handling and update sanitizer support #107

refactor option handling and update sanitizer support

refactor option handling and update sanitizer support #107

Workflow file for this run

name: Linux
on:
push:
branches: [develop]
paths-ignore:
- '.github/workflows/Windows.yml'
- '.github/workflows/macOS.yml'
- '.github/workflows/iOS.yml'
- '.github/workflows/Android.yml'
- '.gitignore'
- 'LICENSE'
- 'README.md'
pull_request:
branches: [main, develop]
paths-ignore:
- '.github/workflows/Windows.yml'
- '.github/workflows/macOS.yml'
- '.github/workflows/iOS.yml'
- '.github/workflows/Android.yml'
- '.gitignore'
- 'LICENSE'
- 'README.md'
jobs:
build:
name: ${{ matrix.os }}-x64 ( ${{ matrix.kind }}-${{ matrix.mode }} )
strategy:
fail-fast: false
matrix:
os: [Linux]
kind: [static, shared]
mode: [release, debug, asan]
runs-on: ${{ matrix.os }}
concurrency:
group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-Linux-${{ matrix.kind }}-${{ matrix.mode }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: branch@dev
- name: Update xmake repository
run: xmake repo -vD --update
- name: Configure & Build
id: build
run: |
xmake f -vD --yes -m ${{ (matrix.mode == 'release' || matrix.mode == 'debug') && matrix.mode || 'releasedbg' }} -k ${{ matrix.kind }} --sanitizers=${{ matrix.mode == 'asan' && 'y' || 'n' }} --enable_examples=y --enable_tests=y --enable_gpu=n --libc++=y --toolchain=llvm --mold=y --sdk=/opt/llvm-git/usr --ldflags="-L/opt/llvm-git/usr/lib" --shflags="-L/opt/llvm-git/usr/lib"
xmake b -vD
- name: Tests
run: LD_LIBRARY_PATH="/opt/llvm-git/usr/lib" xmake test
- name: Installation
run: xmake install -vD --installdir="${{ runner.workspace }}/output"
- name: Upload artifacts
id: upload
uses: actions/upload-artifact@v1
with:
name: Linux-x64-${{ matrix.kind }}-${{ matrix.mode }}
path: ${{ runner.workspace }}/output