version: 2 jobs: build: docker: - image: circleci/python resource_class: medium+ steps: - run: name: Installing GCC, CMake, Ninja, Protobuf command: sudo apt-get update && sudo apt-get install -y gcc g++ cmake ninja-build protobuf-compiler - checkout: path: onnx-mlir - run: name: Pull Submodules command: | cd onnx-mlir git submodule update --init --recursive # Use cached mlir installation if possible. - restore_cache: key: V17-LLVM-PROJECT-{{ arch }} - run: name: Install MLIR command: | # Check whether cache restoration succeeds by checking whether # mlir-opt executable exists. if [ ! -f llvm-project/build/bin/mlir-opt ]; then export MAKEFLAGS=-j4 source onnx-mlir/utils/install-mlir.sh fi - save_cache: key: V17-LLVM-PROJECT-{{ arch }} paths: - llvm-project - run: name: Install ONNX MLIR command: source onnx-mlir/utils/install-onnx-mlir.sh - run: name: Run End-To-End Tests command: | sudo pip install -q -e ./onnx-mlir/third_party/onnx cd onnx-mlir/build RUNTIME_DIR=$(pwd)/lib cmake --build . --target check-onnx-backend - run: name: Run Unit Tests command: | cd onnx-mlir/build # Need to include the bin directory in $PATH, # otherwise CTest fails to find the test executables. RUNTIME_DIR=$(pwd)/lib PATH=$(pwd)/bin:$PATH make test -j$(nproc) - run: name: Run DocCheck command: cd onnx-mlir/build && cmake --build . --target check-doc - run: name: Ensure tablegen documentation is up-to-date command: | cd onnx-mlir/build cmake --build . --target onnx-mlir-doc # Check whether dialect documentation is up-to-date. diff docs/Dialects ../docs/Dialects - run: name: Print the Current Time command: date