Add two more Android FIPS builders
We support armv7 with FIPS in the shared library build, but this is
never tested in CI. We also support (though not I think for Android?)
delocate with aarch64. Since our only Linux aarch64 builders are
Android, add a statically linked Android builder.
Also update builders to use the properties added in
https://chromium-review.googlesource.com/c/chromium/tools/build/+/4296193,
which removes the last of the dependency on name-parsing.
Change-Id: Ic403c02a6fbd4ce65f4c3a24cf6cc6572686226a
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/57690
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/generated/commit-queue.cfg b/generated/commit-queue.cfg
index 31a0581..5c5b76a 100644
--- a/generated/commit-queue.cfg
+++ b/generated/commit-queue.cfg
@@ -41,6 +41,13 @@
name: "boringssl/try/android_aarch64_fips_compile"
}
builders {
+ name: "boringssl/try/android_aarch64_fips_static"
+ includable_only: true
+ }
+ builders {
+ name: "boringssl/try/android_aarch64_fips_static_compile"
+ }
+ builders {
name: "boringssl/try/android_aarch64_rel"
includable_only: true
}
@@ -63,6 +70,13 @@
name: "boringssl/try/android_arm_compile"
}
builders {
+ name: "boringssl/try/android_arm_fips"
+ includable_only: true
+ }
+ builders {
+ name: "boringssl/try/android_arm_fips_compile"
+ }
+ builders {
name: "boringssl/try/android_arm_rel"
includable_only: true
}
diff --git a/generated/cr-buildbucket.cfg b/generated/cr-buildbucket.cfg
index 1392f03..5d33d56 100644
--- a/generated/cr-buildbucket.cfg
+++ b/generated/cr-buildbucket.cfg
@@ -25,6 +25,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21"'
@@ -61,6 +62,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -85,6 +87,44 @@
}
}
builders {
+ name: "android_aarch64_fips_static"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "device_type:walleye"
+ dimensions: "pool:luci.flex.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$gatekeeper": {'
+ ' "group": "client.boringssl"'
+ ' },'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "arm64-v8a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl"'
+ '}'
+ execution_timeout_secs: 3600
+ caches {
+ name: "gocache"
+ path: "gocache"
+ }
+ caches {
+ name: "gopath"
+ path: "gopath"
+ }
+ service_account: "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
name: "android_aarch64_rel"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "device_type:bullhead"
@@ -99,6 +139,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -136,6 +177,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -173,6 +215,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_MODE": "arm",'
@@ -198,6 +241,45 @@
}
}
builders {
+ name: "android_arm_fips"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "device_type:walleye"
+ dimensions: "pool:luci.flex.ci"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "$gatekeeper": {'
+ ' "group": "client.boringssl"'
+ ' },'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "armeabi-v7a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "BUILD_SHARED_LIBS": "1",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl"'
+ '}'
+ execution_timeout_secs: 3600
+ caches {
+ name: "gocache"
+ path: "gocache"
+ }
+ caches {
+ name: "gopath"
+ path: "gopath"
+ }
+ service_account: "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
name: "android_arm_rel"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "device_type:bullhead"
@@ -212,6 +294,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -540,7 +623,8 @@
' "CMAKE_SYSTEM_PROCESSOR": "x86"'
' },'
' "recipe": "boringssl",'
- ' "run_ssl_tests": false'
+ ' "run_ssl_tests": false,'
+ ' "sde": true'
'}'
execution_timeout_secs: 3600
caches {
@@ -1150,7 +1234,8 @@
' "CMAKE_BUILD_TYPE": "RelWithAsserts"'
' },'
' "recipe": "boringssl",'
- ' "run_ssl_tests": false'
+ ' "run_ssl_tests": false,'
+ ' "sde": true'
'}'
execution_timeout_secs: 3600
caches {
@@ -1183,6 +1268,7 @@
' "$gatekeeper": {'
' "group": "client.boringssl"'
' },'
+ ' "check_imported_libraries": true,'
' "cmake_args": {'
' "BUILD_SHARED_LIBS": "1"'
' },'
@@ -1541,7 +1627,8 @@
' },'
' "msvc_target": "x86",'
' "recipe": "boringssl",'
- ' "run_ssl_tests": false'
+ ' "run_ssl_tests": false,'
+ ' "sde": true'
'}'
execution_timeout_secs: 3600
caches {
@@ -1784,7 +1871,8 @@
' },'
' "msvc_target": "x64",'
' "recipe": "boringssl",'
- ' "run_ssl_tests": false'
+ ' "run_ssl_tests": false,'
+ ' "sde": true'
'}'
execution_timeout_secs: 3600
caches {
@@ -1967,6 +2055,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21"'
@@ -1993,6 +2082,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21"'
@@ -2020,6 +2110,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -2048,6 +2139,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -2066,6 +2158,63 @@
}
}
builders {
+ name: "android_aarch64_fips_static"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "device_type:walleye"
+ dimensions: "pool:luci.flex.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "arm64-v8a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl"'
+ '}'
+ execution_timeout_secs: 3600
+ service_account: "boringssl-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
+ name: "android_aarch64_fips_static_compile"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu-18.04"
+ dimensions: "pool:luci.flex.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "arm64-v8a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl",'
+ ' "run_ssl_tests": false,'
+ ' "run_unit_tests": false'
+ '}'
+ execution_timeout_secs: 1800
+ service_account: "boringssl-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
name: "android_aarch64_rel"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "device_type:bullhead"
@@ -2077,6 +2226,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -2104,6 +2254,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "arm64-v8a",'
' "ANDROID_PLATFORM": "android-21",'
@@ -2132,6 +2283,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -2158,6 +2310,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_MODE": "arm",'
@@ -2187,6 +2340,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_MODE": "arm",'
@@ -2218,6 +2372,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -2235,6 +2390,65 @@
}
}
builders {
+ name: "android_arm_fips"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "device_type:walleye"
+ dimensions: "pool:luci.flex.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "armeabi-v7a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "BUILD_SHARED_LIBS": "1",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl"'
+ '}'
+ execution_timeout_secs: 3600
+ service_account: "boringssl-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
+ name: "android_arm_fips_compile"
+ swarming_host: "chromium-swarm.appspot.com"
+ dimensions: "cpu:x86-64"
+ dimensions: "os:Ubuntu-18.04"
+ dimensions: "pool:luci.flex.try"
+ exe {
+ cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+ cipd_version: "refs/heads/main"
+ cmd: "luciexe"
+ }
+ properties:
+ '{'
+ ' "android": true,'
+ ' "cmake_args": {'
+ ' "ANDROID_ABI": "armeabi-v7a",'
+ ' "ANDROID_PLATFORM": "android-21",'
+ ' "BUILD_SHARED_LIBS": "1",'
+ ' "FIPS": "1"'
+ ' },'
+ ' "recipe": "boringssl",'
+ ' "run_ssl_tests": false,'
+ ' "run_unit_tests": false'
+ '}'
+ execution_timeout_secs: 1800
+ service_account: "boringssl-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+ experiments {
+ key: "luci.recipes.use_python3"
+ value: 100
+ }
+ }
+ builders {
name: "android_arm_rel"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "device_type:bullhead"
@@ -2246,6 +2460,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -2274,6 +2489,7 @@
}
properties:
'{'
+ ' "android": true,'
' "cmake_args": {'
' "ANDROID_ABI": "armeabi-v7a",'
' "ANDROID_ARM_NEON": "FALSE",'
@@ -2915,6 +3131,7 @@
}
properties:
'{'
+ ' "check_imported_libraries": true,'
' "cmake_args": {'
' "BUILD_SHARED_LIBS": "1"'
' },'
diff --git a/generated/luci-milo.cfg b/generated/luci-milo.cfg
index 81c02e4..545d19f 100644
--- a/generated/luci-milo.cfg
+++ b/generated/luci-milo.cfg
@@ -26,6 +26,11 @@
short_name: "fips"
}
builders {
+ name: "buildbucket/luci.boringssl.ci/android_aarch64_fips_static"
+ category: "android|aarch64"
+ short_name: "fips2"
+ }
+ builders {
name: "buildbucket/luci.boringssl.ci/android_arm"
category: "android|thumb"
short_name: "dbg"
@@ -36,6 +41,11 @@
short_name: "rel"
}
builders {
+ name: "buildbucket/luci.boringssl.ci/android_arm_fips"
+ category: "android|thumb"
+ short_name: "fips"
+ }
+ builders {
name: "buildbucket/luci.boringssl.ci/android_arm_armmode_rel"
category: "android|arm"
short_name: "rel"
diff --git a/generated/luci-notify.cfg b/generated/luci-notify.cfg
index daa26f0..9019408 100644
--- a/generated/luci-notify.cfg
+++ b/generated/luci-notify.cfg
@@ -45,6 +45,21 @@
}
builders {
bucket: "ci"
+ name: "android_aarch64_fips_static"
+ repository: "https://boringssl.googlesource.com/boringssl"
+ }
+}
+notifiers {
+ notifications {
+ on_occurrence: FAILURE
+ on_occurrence: INFRA_FAILURE
+ on_new_status: SUCCESS
+ email {
+ recipients: "boringssl@google.com"
+ }
+ }
+ builders {
+ bucket: "ci"
name: "android_aarch64_rel"
repository: "https://boringssl.googlesource.com/boringssl"
}
@@ -90,6 +105,21 @@
}
builders {
bucket: "ci"
+ name: "android_arm_fips"
+ repository: "https://boringssl.googlesource.com/boringssl"
+ }
+}
+notifiers {
+ notifications {
+ on_occurrence: FAILURE
+ on_occurrence: INFRA_FAILURE
+ on_new_status: SUCCESS
+ email {
+ recipients: "boringssl@google.com"
+ }
+ }
+ builders {
+ bucket: "ci"
name: "android_arm_rel"
repository: "https://boringssl.googlesource.com/boringssl"
}
diff --git a/generated/luci-scheduler.cfg b/generated/luci-scheduler.cfg
index 12fa431..0003bdf 100644
--- a/generated/luci-scheduler.cfg
+++ b/generated/luci-scheduler.cfg
@@ -25,6 +25,16 @@
}
}
job {
+ id: "android_aarch64_fips_static"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "ci"
+ builder: "android_aarch64_fips_static"
+ }
+}
+job {
id: "android_aarch64_rel"
realm: "ci"
acl_sets: "ci"
@@ -55,6 +65,16 @@
}
}
job {
+ id: "android_arm_fips"
+ realm: "ci"
+ acl_sets: "ci"
+ buildbucket {
+ server: "cr-buildbucket.appspot.com"
+ bucket: "ci"
+ builder: "android_arm_fips"
+ }
+}
+job {
id: "android_arm_rel"
realm: "ci"
acl_sets: "ci"
@@ -500,9 +520,11 @@
acl_sets: "ci"
triggers: "android_aarch64"
triggers: "android_aarch64_fips"
+ triggers: "android_aarch64_fips_static"
triggers: "android_aarch64_rel"
triggers: "android_arm"
triggers: "android_arm_armmode_rel"
+ triggers: "android_arm_fips"
triggers: "android_arm_rel"
triggers: "docs"
triggers: "ios64_compile"
diff --git a/main.star b/main.star
index 48a81c3..f5070c2 100755
--- a/main.star
+++ b/main.star
@@ -291,6 +291,7 @@
short_name = "dbg",
cq_compile_only = LINUX_HOST,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "arm64-v8a",
"ANDROID_PLATFORM": "android-21",
@@ -305,6 +306,7 @@
cq_compile_only = LINUX_HOST,
cq_enabled = False,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "arm64-v8a",
"ANDROID_PLATFORM": "android-21",
@@ -320,6 +322,7 @@
short_name = "fips",
cq_compile_only = LINUX_HOST,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "arm64-v8a",
"ANDROID_PLATFORM": "android-21",
@@ -329,6 +332,27 @@
},
},
)
+
+# delocate works on aarch64. Test this by also building the static library mode
+# for android_aarch64_fips. Additionally, urandom_test doesn't work in shared
+# library builds, so this gives Android FIPS coverage for urandom_test.
+both_builders(
+ "android_aarch64_fips_static",
+ # The Android FIPS configuration requires a newer device.
+ WALLEYE_HOST,
+ category = "android|aarch64",
+ short_name = "fips2",
+ cq_compile_only = LINUX_HOST,
+ properties = {
+ "android": True,
+ "cmake_args": {
+ "ANDROID_ABI": "arm64-v8a",
+ "ANDROID_PLATFORM": "android-21",
+ "FIPS": "1",
+ },
+ },
+)
+
both_builders(
"android_arm",
BULLHEAD_HOST,
@@ -336,6 +360,7 @@
short_name = "dbg",
cq_compile_only = LINUX_HOST,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "armeabi-v7a",
# Newer versions of the Android NDK make NEON-only builds by
@@ -354,6 +379,7 @@
cq_compile_only = LINUX_HOST,
cq_enabled = False,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "armeabi-v7a",
# Newer versions of the Android NDK make NEON-only builds by
@@ -366,12 +392,31 @@
},
)
both_builders(
+ "android_arm_fips",
+ # The Android FIPS configuration requires a newer device.
+ WALLEYE_HOST,
+ category = "android|thumb",
+ short_name = "fips",
+ cq_compile_only = LINUX_HOST,
+ properties = {
+ "android": True,
+ "cmake_args": {
+ "ANDROID_ABI": "armeabi-v7a",
+ "ANDROID_PLATFORM": "android-21",
+ # FIPS mode on Android uses shared libraries.
+ "BUILD_SHARED_LIBS": "1",
+ "FIPS": "1",
+ },
+ },
+)
+both_builders(
"android_arm_armmode_rel",
BULLHEAD_HOST,
category = "android|arm",
short_name = "rel",
cq_compile_only = LINUX_HOST,
properties = {
+ "android": True,
"cmake_args": {
"ANDROID_ABI": "armeabi-v7a",
"ANDROID_ARM_MODE": "arm",
@@ -494,6 +539,7 @@
"CMAKE_CXX_FLAGS": "-m32 -msse2",
},
"run_ssl_tests": False,
+ "sde": True,
},
)
both_builders(
@@ -708,6 +754,7 @@
"CMAKE_BUILD_TYPE": "RelWithAsserts",
},
"run_ssl_tests": False,
+ "sde": True,
},
)
both_builders(
@@ -719,6 +766,9 @@
"cmake_args": {
"BUILD_SHARED_LIBS": "1",
},
+ # The default Linux build may not depend on the C++ runtime. This is
+ # easy to check when building shared libraries.
+ "check_imported_libraries": True,
},
)
both_builders(
@@ -803,6 +853,7 @@
},
"msvc_target": "x86",
"run_ssl_tests": False,
+ "sde": True,
},
)
both_builders(
@@ -884,6 +935,7 @@
},
"msvc_target": "x64",
"run_ssl_tests": False,
+ "sde": True,
},
)
both_builders(