From bab2e813dc67144e886718a78510e3b88dcce242 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 11 Feb 2021 16:23:12 -0800 Subject: [PATCH 1/3] Use faster Bazel setup with 4.0 LTS. --- .github/workflows/unit_tests.yml | 43 +++++++++++++------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index fa5a270d9e9..7e33e43fb7a 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -20,28 +20,24 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 0 - - name: Clone Oppia Bazel - run: git clone https://github.com/oppia/bazel.git $HOME/oppia-bazel - - name: Unzip Bazel binary - run: | - cd $HOME/oppia-bazel - unzip bazel-build.zip - cd $GITHUB_WORKSPACE - chmod a+x $HOME/oppia-bazel/bazel + - name: Set up Bazel + uses: abhinavsingh/setup-bazel@v3 + with: + version: 4.0.0 - name: Compute test matrix based on affected targets id: compute-test-matrix-from-affected if: "!contains(github.event.pull_request.title, '[RunAllTests]')" # https://unix.stackexchange.com/a/338124 for reference on creating a JSON-friendly # comma-separated list of test targets for the matrix. run: | - TEST_TARGET_LIST=$(bash ./scripts/compute_affected_tests.sh $HOME/oppia-bazel/bazel | sed 's/^\|$/"/g' | paste -sd, -) + TEST_TARGET_LIST=$(bash ./scripts/compute_affected_tests.sh bazel | sed 's/^\|$/"/g' | paste -sd, -) echo "Affected tests (note that this might be all tests if on the develop branch): $TEST_TARGET_LIST" echo "::set-output name=matrix::{\"test-target\":[$TEST_TARGET_LIST]}" - name: Compute test matrix based on all tests id: compute-test-matrix-from-all if: "contains(github.event.pull_request.title, '[RunAllTests]')" run: | - TEST_TARGET_LIST=$($HOME/oppia-bazel/bazel query "kind(test, //...)" | sed 's/^\|$/"/g' | paste -sd, -) + TEST_TARGET_LIST=$(bazel query "kind(test, //...)" | sed 's/^\|$/"/g' | paste -sd, -) echo "Affected tests (note that this might be all tests if on the develop branch): $TEST_TARGET_LIST" echo "::set-output name=matrix::{\"test-target\":[$TEST_TARGET_LIST]}" @@ -54,18 +50,21 @@ jobs: matrix: ${{fromJson(needs.bazel_compute_affected_targets.outputs.matrix)}} steps: - uses: actions/checkout@v2 - - name: Clone Oppia Bazel - run: git clone https://github.com/oppia/bazel.git $HOME/oppia-bazel - name: Set up JDK 9 uses: actions/setup-java@v1 with: java-version: 9 - - name: Extract Android tools + - name: Set up Bazel + uses: abhinavsingh/setup-bazel@v3 + with: + version: 4.0.0 + - name: Set up Oppia Bazel Android Tools run: | - mkdir -p $GITHUB_WORKSPACE/tmp/android_tools - cd $HOME/oppia-bazel - unzip bazel-tools.zip - tar -xf $HOME/oppia-bazel/android_tools.tar.gz -C $GITHUB_WORKSPACE/tmp/android_tools + mkdir $HOME/opensource + cd $HOME/opensource + git clone https://github.com/oppia/oppia-bazel-tools + echo build --override_repository=android_tools="$(cd "$(dirname "$HOME/opensource/oppia-bazel-tools")"; pwd)/$(basename "$HOME/opensource/oppia-bazel-tools")" >> $HOME/.bazelrc + echo build --android_databinding_use_androidx >> $HOME/.bazelrc # See explanation in bazel_build_app for how this is installed. - name: Install git-secret (non-fork only) if: github.repository == 'oppia/oppia-android' @@ -89,22 +88,16 @@ jobs: gpg --import ./git_secret_private_key.gpg cd $GITHUB_WORKSPACE git secret reveal - - name: Unzip Bazel binary - run: | - cd $HOME/oppia-bazel - unzip bazel-build.zip - cd $GITHUB_WORKSPACE - chmod a+x $HOME/oppia-bazel/bazel - name: Run Oppia Test (with caching, non-fork only) if: github.repository == 'oppia/oppia-android' env: BAZEL_REMOTE_CACHE_URL: ${{ secrets.BAZEL_REMOTE_CACHE_URL }} - run: $HOME/oppia-bazel/bazel test --override_repository=android_tools=$GITHUB_WORKSPACE/tmp/android_tools --remote_http_cache=$BAZEL_REMOTE_CACHE_URL --google_credentials=./config/oppia-dev-workflow-remote-cache-credentials.json -- ${{ matrix.test-target }} + run: bazel test --remote_http_cache=$BAZEL_REMOTE_CACHE_URL --google_credentials=./config/oppia-dev-workflow-remote-cache-credentials.json -- ${{ matrix.test-target }} - name: Run Oppia Test (without caching, fork only) if: github.repository != 'oppia/oppia-android' env: BAZEL_REMOTE_CACHE_URL: ${{ secrets.BAZEL_REMOTE_CACHE_URL }} - run: $HOME/oppia-bazel/bazel test --override_repository=android_tools=$GITHUB_WORKSPACE/tmp/android_tools -- ${{ matrix.test-target }} + run: bazel test -- ${{ matrix.test-target }} # Reference: https://github.community/t/127354/7. check_test_results: From c42de62b1988c97a1df9f7dbfa6be09c0716a1ad Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 11 Feb 2021 20:40:28 -0800 Subject: [PATCH 2/3] Update unit_tests.yml Switch to previously approved Bazel setup action. --- .github/workflows/unit_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 7e33e43fb7a..60617715af9 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -21,9 +21,9 @@ jobs: with: fetch-depth: 0 - name: Set up Bazel - uses: abhinavsingh/setup-bazel@v3 + uses: jwlawson/actions-setup-bazel@v1 with: - version: 4.0.0 + bazel-version: 4.0.0 - name: Compute test matrix based on affected targets id: compute-test-matrix-from-affected if: "!contains(github.event.pull_request.title, '[RunAllTests]')" @@ -55,9 +55,9 @@ jobs: with: java-version: 9 - name: Set up Bazel - uses: abhinavsingh/setup-bazel@v3 + uses: jwlawson/actions-setup-bazel@v1 with: - version: 4.0.0 + bazel-version: 4.0.0 - name: Set up Oppia Bazel Android Tools run: | mkdir $HOME/opensource From f6fde329258968fd590d24a513baeec4b926e72e Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 11 Feb 2021 20:43:35 -0800 Subject: [PATCH 3/3] Update unit_tests.yml Switch back to uses: abhinavsingh/setup-bazel@v3 for setup. The one we used previously doesn't seem to work currently with 4.0: https://github.com/jwlawson/actions-setup-bazel/issues/11 --- .github/workflows/unit_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 60617715af9..7e33e43fb7a 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -21,9 +21,9 @@ jobs: with: fetch-depth: 0 - name: Set up Bazel - uses: jwlawson/actions-setup-bazel@v1 + uses: abhinavsingh/setup-bazel@v3 with: - bazel-version: 4.0.0 + version: 4.0.0 - name: Compute test matrix based on affected targets id: compute-test-matrix-from-affected if: "!contains(github.event.pull_request.title, '[RunAllTests]')" @@ -55,9 +55,9 @@ jobs: with: java-version: 9 - name: Set up Bazel - uses: jwlawson/actions-setup-bazel@v1 + uses: abhinavsingh/setup-bazel@v3 with: - bazel-version: 4.0.0 + version: 4.0.0 - name: Set up Oppia Bazel Android Tools run: | mkdir $HOME/opensource