diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index 1b9652b59464f..025ee0747dfb3 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -164,12 +164,29 @@ jobs: uses: actions/setup-java@v1 with: java-version: "11" + # Required for CMake when building workmanager. + - name: "Install Ninja" + run: | + set -x + if [ "$RUNNER_OS" == "Linux" ]; then + sudo apt-get install ninja-build + elif [ "$RUNNER_OS" == "macOS" ]; then + brew install ninja + elif [ "$RUNNER_OS" == "Windows" ]; then + choco install ninja + else + echo "Failed to install ninja due to unsupport OS: $RUNNER_OS" + exit 1 + fi - name: "Set environment variables" shell: bash run: | set -x echo "DIST_DIR=$HOME/dist" >> $GITHUB_ENV + # Make ninja visible to CMAKE + echo "CMAKE_MAKE_PROGRAM=$(which ninja)" >> $GITHUB_ENV + echo "ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/23.1.7779620" >> $GITHUB_ENV # gradle action loads the dependencies cache only on the first run based on arguments. # to control it, we explicitly invoke it once which makes it load the dependencies cache with the parameters # we control