-
Notifications
You must be signed in to change notification settings - Fork 13
94 lines (88 loc) · 4.38 KB
/
run-experiments-androidx.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: AndroidX biometric
on:
schedule:
# Every Sunday at 9.00am
- cron: "0 9 * * 0"
workflow_dispatch:
env:
GRADLE_ENTERPRISE_URL: "https://ge.solutions-team.gradle.com"
GIT_REPO: "https://github.com/androidx/androidx"
TASKS: "buildOnServer zipTestConfigsWithApks test"
PROJECT_DIR: "playground-projects/biometric-playground"
ARGS: "-x ktlint -Dorg.gradle.dependency.verification=off"
jobs:
Experiment:
strategy:
matrix:
include:
- experimentId: 1
- experimentId: 2
- experimentId: 3
runs-on: ubuntu-latest
steps:
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: "8"
distribution: "temurin"
- name: Set tools jar path
run: |
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "JAVA_TOOLS_JAR=$JAVA_HOME/lib/tools.jar" >> $GITHUB_ENV
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Download latest version of the validation scripts
uses: gradle/gradle-enterprise-build-validation-scripts/.github/actions/gradle/download@actions-stable
with:
token: ${{ secrets.GITHUB_TOKEN }}
# MergeResources and DataBindingGenBaseClassesTask are not cache relocatable when resourceDirsOutsideRootProjectDir is not empty
# https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:build-system/gradle-core/src/main/java/com/android/build/gradle/tasks/MergeResources.kt;l=164?q=MergeResources
# This is the case here as androidx/biometric project has its root dir set to androidx/playground-projects/biometric-playground
- name: Adjust git hook to temporarily disable caching for MergeResources and DataBindingGenBaseClassesTask on biometric:integration-tests
run: |
mkdir ~/git-hooks
echo -e 'echo "\nproject.getTasks().withType(com.android.build.gradle.tasks.MergeResources).configureEach { outputs.doNotCacheIf(\"MergeResources is not cache relocatable when resourceDirsOutsideRootProjectDir is not empty\") { true } }" >> biometric/integration-tests/testapp/build.gradle\n' > ~/git-hooks/post-checkout
echo -e 'echo "\nproject.getTasks().withType(com.android.build.gradle.internal.tasks.databinding.DataBindingGenBaseClassesTask).configureEach { outputs.doNotCacheIf(\"DataBindingGenBaseClassesTask is not cache relocatable when resourceDirsOutsideRootProjectDir is not empty\") { true } }" >> biometric/integration-tests/testapp/build.gradle\n' >> ~/git-hooks/post-checkout
chmod +x ~/git-hooks/post-checkout
git config --global core.hooksPath ~/git-hooks
if: matrix.experimentId == 3
- name: Run experiment 1
uses: gradle/gradle-enterprise-build-validation-scripts/.github/actions/gradle/experiment-1@actions-stable
env:
GRADLE_ENTERPRISE_ACCESS_KEY: "${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}"
with:
gitRepo: ${{ env.GIT_REPO }}
tasks: ${{ env.TASKS }}
args: ${{ env.ARGS }}
projectDir: ${{ env.PROJECT_DIR }}
gradleEnterpriseUrl: ${{ env.GRADLE_ENTERPRISE_URL }}
if: matrix.experimentId == 1
- name: Run experiment 2
uses: gradle/gradle-enterprise-build-validation-scripts/.github/actions/gradle/experiment-2@actions-stable
env:
GRADLE_ENTERPRISE_ACCESS_KEY: "${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}"
with:
gitRepo: ${{ env.GIT_REPO }}
tasks: ${{ env.TASKS }}
args: ${{ env.ARGS }}
projectDir: ${{ env.PROJECT_DIR }}
gradleEnterpriseUrl: ${{ env.GRADLE_ENTERPRISE_URL }}
failIfNotFullyCacheable: false
if: matrix.experimentId == 2
- name: Run experiment 3
uses: gradle/gradle-enterprise-build-validation-scripts/.github/actions/gradle/experiment-3@actions-stable
env:
GRADLE_ENTERPRISE_ACCESS_KEY: "${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }}"
with:
gitRepo: ${{ env.GIT_REPO }}
tasks: ${{ env.TASKS }}
args: ${{ env.ARGS }}
projectDir: ${{ env.PROJECT_DIR }}
gradleEnterpriseUrl: ${{ env.GRADLE_ENTERPRISE_URL }}
failIfNotFullyCacheable: false
if: matrix.experimentId == 3