name: Build and Test on: push: branches: - main pull_request: workflow_dispatch: inputs: release_id: description: 'Release id to upload artifacts to' default: '' python_package_version: description: 'Version to use for creating the Python package' default: '' jobs: build: name: Build and Test and maybe Publish (Release Asserts) runs-on: ubuntu-20.04 steps: - name: Get torch-mlir uses: actions/checkout@v2 with: submodules: 'true' - uses: ./.github/actions/setup-build - name: Build and Test torch-mlir (Assert) run: | cd $GITHUB_WORKSPACE mkdir build cd build cmake $GITHUB_WORKSPACE/externals/llvm-project/llvm -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_LINKER=lld \ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ -DPython3_EXECUTABLE=$(which python) \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_ENABLE_PROJECTS=mlir \ -DLLVM_EXTERNAL_PROJECTS="torch-mlir;torch-mlir-dialects" \ -DLLVM_EXTERNAL_TORCH_MLIR_SOURCE_DIR="$GITHUB_WORKSPACE" \ -DLLVM_EXTERNAL_TORCH_MLIR_DIALECTS_SOURCE_DIR="${GITHUB_WORKSPACE}/external/llvm-external-projects/torch-mlir-dialects" \ -DMLIR_ENABLE_BINDINGS_PYTHON=ON \ -DLLVM_TARGETS_TO_BUILD=host ninja check-torch-mlir-all - name: RefBackend - TorchScript end-to-end tests run: | cd $GITHUB_WORKSPACE export PYTHONPATH="$GITHUB_WORKSPACE/build/tools/torch-mlir/python_packages/torch_mlir" python -m e2e_testing.torchscript.main --config=refbackend -v - name: TOSA backend - TorchScript end-to-end tests run: | cd $GITHUB_WORKSPACE export PYTHONPATH="$GITHUB_WORKSPACE/build/tools/torch-mlir/python_packages/torch_mlir" python -m e2e_testing.torchscript.main --config=tosa -v # TODO: Only build packages in full Release mode. # On the other hand, having assertions on isn't too bad of an idea at this # early stage. - name: Build Python wheels and smoke test. run: | cd $GITHUB_WORKSPACE python -m pip install wheel TORCH_MLIR_CMAKE_BUILD_DIR="$GITHUB_WORKSPACE/build" \ TORCH_MLIR_CMAKE_BUILD_DIR_ALREADY_BUILT=1 \ TORCH_MLIR_PYTHON_PACKAGE_VERSION="${{ github.event.inputs.python_package_version }}" \ ./build_tools/build_python_wheels.sh # upload the package we just built to the github releases page. - name: Upload Release Assets (if requested) id: upload-release-assets if: github.event.inputs.release_id != '' uses: dwenegar/upload-release-assets@v1 env: GITHUB_TOKEN: ${{ secrets.WORKFLOW_INVOCATION_TOKEN }} with: release_id: ${{ github.event.inputs.release_id }} assets_path: ./wheelhouse/*.whl # Publishing is necessary to make the release visible to `pip` # on the github releases page. - name: Publish Release (if requested) id: publish_release if: github.event.inputs.release_id != '' uses: eregon/publish-release@v1 env: GITHUB_TOKEN: ${{ secrets.WORKFLOW_INVOCATION_TOKEN }} with: release_id: ${{ github.event.inputs.release_id }} build-out-of-tree: name: Build and Test out-of-tree (Release Asserts) runs-on: ubuntu-20.04 steps: - name: Get torch-mlir uses: actions/checkout@v2 with: submodules: 'true' - uses: ./.github/actions/setup-build - name: Build LLVM (standalone) run: | cd $GITHUB_WORKSPACE cmake -Bllvm-build -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_LINKER=lld \ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ -DPython3_EXECUTABLE=$(which python) \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_ENABLE_PROJECTS=mlir \ -DMLIR_ENABLE_BINDINGS_PYTHON=ON \ -DLLVM_TARGETS_TO_BUILD=host \ externals/llvm-project/llvm ninja -Cllvm-build - name: Build and test torch-mlir (out-of-tree) run: | cd $GITHUB_WORKSPACE cmake -GNinja -Bbuild \ -DCMAKE_LINKER=lld \ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ -DMLIR_DIR="$(pwd)/llvm-build/lib/cmake/mlir/" \ -DLLVM_DIR="$(pwd)/llvm-build/lib/cmake/llvm/" \ -DMLIR_ENABLE_BINDINGS_PYTHON=ON \ -DPython3_EXECUTABLE=$(which python) \ . ninja -Cbuild check-torch-mlir-all - name: RefBackend - TorchScript end-to-end tests run: | cd $GITHUB_WORKSPACE export PYTHONPATH="$GITHUB_WORKSPACE/build/python_packages/torch_mlir" python -m e2e_testing.torchscript.main --config=refbackend -v - name: TOSA backend - TorchScript end-to-end tests run: | cd $GITHUB_WORKSPACE export PYTHONPATH="$GITHUB_WORKSPACE/build/python_packages/torch_mlir" python -m e2e_testing.torchscript.main --config=tosa -v