Skip to content

Commit

Permalink
Use exact version of NDK needed by presubmit in Github Actions
Browse files Browse the repository at this point in the history
It is required to install ninja manually due to it not being included in
the virtual env provided by Github Actions runner.

See actions/runner-images#741

In order for Ninja to be visible to CMake during NDK builds, it must be
installed in the same subdirectory, so for now it is symlinked on Linux
builds. See b/206099937

Fixes: 216535050
Test: Github CI
Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
  • Loading branch information
dlam committed Jan 27, 2022
1 parent 8223a3e commit 2c6d38e
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,33 @@ 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
# Should use version 1.10.2 but it is not available on apt yet.
apt-cache madison ninja-build
sudo apt-get install ninja-build=1.10.1
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
# See b/206099937. Hack needed to make ninja visible to cmake during NDK builds
if [ ! -e "/usr/local/bin/ninja" ]; then
ln -s "/usr/bin/ninja" "/usr/local/bin/ninja"
fi
- name: "Set environment variables"
shell: bash
run: |
set -x
echo "DIST_DIR=$HOME/dist" >> $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
Expand Down

0 comments on commit 2c6d38e

Please sign in to comment.