musllvm

musl and LLVM cross-toolchain build system
git clone https://git.daat.foo/repos/musllvm.git
Log | Files | Refs | README | LICENSE

ci.yml (1752B)


      1 name: Toolchain checks
      2 
      3 on:
      4   push:
      5   pull_request:
      6   workflow_dispatch:
      7     inputs:
      8       source_llvm:
      9         description: Also build LLVM host tools from source
     10         type: boolean
     11         default: false
     12 
     13 permissions:
     14   contents: read
     15 
     16 jobs:
     17   driver:
     18     runs-on: ubuntu-24.04
     19     steps:
     20       - uses: actions/checkout@v4
     21       - run: make check
     22 
     23   cross:
     24     runs-on: ubuntu-24.04
     25     timeout-minutes: ${{ inputs.source_llvm && 360 || 90 }}
     26     strategy:
     27       fail-fast: false
     28       matrix:
     29         arch: [x86_64, aarch64]
     30     env:
     31       ARCH: ${{ matrix.arch }}
     32       LLVM_MODE: ${{ inputs.source_llvm && 'source' || 'system' }}
     33     steps:
     34       - uses: actions/checkout@v4
     35       - name: Install host dependencies
     36         run: |
     37           sudo apt-get update
     38           sudo apt-get install -y clang-19 lld-19 llvm-19 llvm-19-dev cmake ninja-build curl xz-utils perl rsync pkg-config qemu-user
     39           echo /usr/lib/llvm-19/bin >> "$GITHUB_PATH"
     40       - uses: actions/cache@v4
     41         with:
     42           path: sources
     43           key: sources-${{ hashFiles('sources.list') }}
     44       - name: Build and run smoke tests
     45         run: |
     46           if [ "$ARCH" = aarch64 ]; then
     47             make JOBS=2 RUNNER=qemu-aarch64
     48           else
     49             make JOBS=2
     50           fi
     51       - name: Check a resumed build
     52         run: make runtimes JOBS=2
     53       - name: Save build diagnostics
     54         if: failure()
     55         uses: actions/upload-artifact@v4
     56         with:
     57           name: diagnostics-${{ matrix.arch }}
     58           path: |
     59             build/work/**/CMakeCache.txt
     60             build/work/**/CMakeFiles/CMakeConfigureLog.yaml
     61             build/work/**/verify/*.header
     62             build/work/**/verify/*.segments
     63             build/work/**/verify/*.dynamic