diff --git a/.github/workflows/buildAndTestAieTools.yml b/.github/workflows/buildAndTestAieTools.yml new file mode 100644 index 0000000000..4a29819799 --- /dev/null +++ b/.github/workflows/buildAndTestAieTools.yml @@ -0,0 +1,99 @@ +name: Build and Test with AIE tools + +on: + push: + branches: + - main + workflow_dispatch: + inputs: + AIE_COMMIT: + description: 'which aie commit to build' + type: string + required: false + default: '' + LIT_FILTER: + description: 'LIT_FILTER for tests (regex of paths in test/)' + type: string + required: false + default: 'dialect|Conversion|Targets|Integration|python' + +defaults: + run: + shell: bash + +env: + DEBIAN_FRONTEND: noninteractive + +jobs: + build-repo: + name: Build and Test + + runs-on: ubuntu-latest + + steps: + + - name: Free disk space + uses: descriptinc/free-disk-space@main + with: + tool-cache: true + android: true + dotnet: true + haskell: true + large-packages: true + swap-storage: false + + - name: Docker prune + shell: bash + run: | + docker system prune -a -f + + - uses: uraimo/run-on-arch-action@v2.5.0 + name: Run commands + id: runcmd + with: + distro: none + base_image: ghcr.io/xilinx/mlir-aie/xilinx:latest + githubToken: ${{ github.token }} + dockerRunArgs: | + --mac-address ${{ secrets.XILINX_MAC }} + run: | + ls -l /opt/Xilinx/Vitis/2023.2/ + + # this is the inverse of `base64 -w 1000000 Xilinx.lic` + # the -w ("wrap after 1000000 cols") is so that there are no spaces in the XILINX_LIC env var + echo -n "${{ secrets.XILINX_LIC }}" | base64 --decode > ~/.Xilinx/Xilinx.lic + + cd / + git clone --recursive https://github.com/Xilinx/mlir-aie.git + pip -q download mlir -f https://makslevental.github.io/wheels && unzip -q mlir-18*.whl + + cd /mlir-aie + if [ x"${{ inputs.AIE_COMMIT }}" != x"" ]; then + pushd mlir-aie && git reset --hard $AIE_COMMIT && popd + fi + + # don't delete the space in the sed + cd cmake/modulesXilinx && sed -i.bak 's/ VITIS_VPP//g' FindVitis.cmake + + mkdir -p /mlir-aie/build + cd /mlir-aie/build + + cmake .. -G Ninja \ + -DMLIR_DIR=/mlir/lib/cmake/mlir \ + -DVITIS_ROOT=/opt/Xilinx/Vitis/2023.2/ \ + -DVitis_VERSION_MAJOR=2023 \ + -DVitis_VERSION_MINOR=2 \ + -DCMAKE_MODULE_PATH=$PWD/../cmake/modulesXilinx \ + -DLLVM_EXTERNAL_LIT=$(which lit) \ + -DAIE_INCLUDE_INTEGRATION_TESTS=ON \ + -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ + -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ + -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_INSTALL_PREFIX=install + + ninja + + sed -i.bak 's/-sv --timeout 600/-sv --timeout 600 -j1/g' ../test/CMakeLists.txt + LIT_FILTER="${{ inputs.LIT_FILTER }}" PATH=/opt/Xilinx/Vitis/2023.2/aietools/bin:$PATH ninja check-aie