blob: 0667967e6a41a60a2b903d417184f9fd7207bd82 [file] [log] [blame]
name: Build and test
on:
push:
paths-ignore:
- 'scripts/**'
env:
EMITC: emitc
LLVM: llvm
jobs:
build-llvm:
name: Build LLVM
runs-on: ubuntu-20.04
steps:
- name: Checkout EmitC
uses: actions/checkout@v2
with:
path: ${{ env.EMITC }}
submodules: 'true'
- name: Get LLVM hash
id: get-llvm-hash
run: echo "llvm_hash=$(cat ${{ env.EMITC }}/build_tools/llvm_version.txt)" >> $GITHUB_ENV
shell: bash
- name: Cache LLVM
id: cache-llvm
uses: actions/cache@v2
with:
path: ${{ env.LLVM }}
key: ${{ runner.os }}-llvm-20.04-install-${{ env.llvm_hash }}
- name: Checkout LLVM
if: steps.cache-llvm.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: llvm/llvm-project
path: ${{ env.LLVM }}
ref: ${{ env.llvm_hash }}
- name: Rebuild and Install LLVM
if: steps.cache-llvm.outputs.cache-hit != 'true'
run: |
mkdir -p ${LLVM}/build
mkdir -p ${LLVM}/install
cd ${LLVM}/build
cmake ../llvm \
-DLLVM_INSTALL_UTILS=ON \
-DLLVM_ENABLE_LLD=ON \
-DLLVM_ENABLE_PROJECTS=mlir \
-DLLVM_TARGETS_TO_BUILD="host" \
-DLLVM_INCLUDE_TOOLS=ON \
-DLLVM_BUILD_TOOLS=OFF \
-DLLVM_INCLUDE_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=../install \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=On \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++
cmake --build . --target install -- -j$(nproc)
build:
name: Build and test EmitC
needs: build-llvm
runs-on: ubuntu-20.04
steps:
- name: Configure Environment
run: echo "$GITHUB_WORKSPACE/${LLVM}/install/bin" >> $GITHUB_PATH
- name: Checkout EmitC
uses: actions/checkout@v2
with:
path: ${{ env.EMITC }}
submodules: 'true'
- name: Get LLVM hash
id: get-llvm-hash
run: echo "llvm_hash=$(cat ${{ env.EMITC }}/build_tools/llvm_version.txt)" >> $GITHUB_ENV
shell: bash
- name: Cache LLVM
id: cache-llvm
uses: actions/cache@v2
with:
path: ${{ env.LLVM }}
key: ${{ runner.os }}-llvm-20.04-install-${{ env.llvm_hash }}
- name: Build and test EmitC (Debug)
run: |
mkdir -p ${EMITC}/build_debug
cd ${EMITC}/build_debug
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DMLIR_DIR=$GITHUB_WORKSPACE/${LLVM}/install/lib/cmake/mlir/ \
-DLLVM_DIR=$GITHUB_WORKSPACE/${LLVM}/install/lib/cmake/llvm/ \
-DCMAKE_LINKER=lld \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_EXTERNAL_LIT=`pwd`/../../${LLVM}/build/bin/llvm-lit
cmake --build . --target check-emitc -- -j$(nproc)
- name: Build and test EmitC (Release)
run: |
mkdir -p ${EMITC}/build_release
cd ${EMITC}/build_release
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DMLIR_DIR=$GITHUB_WORKSPACE/${LLVM}/install/lib/cmake/mlir/ \
-DLLVM_DIR=$GITHUB_WORKSPACE/${LLVM}/install/lib/cmake/llvm/ \
-DCMAKE_LINKER=lld \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_EXTERNAL_LIT=`pwd`/../../${LLVM}/build/bin/llvm-lit
cmake --build . --target check-emitc -- -j$(nproc)