Skip to content
Snippets Groups Projects
Commit 50831b87 authored by akwizgran's avatar akwizgran
Browse files

Merge branch 'jar-flavours' into 'master'

Adapt briar-reproducer to match various jar flavours

See merge request !8
parents 91173d85 967df910
No related branches found
No related tags found
1 merge request!8Adapt briar-reproducer to match various jar flavours
Pipeline #8660 failed
......@@ -12,13 +12,28 @@ REPO_DIR = "briar"
REFERENCE_APK_URL = 'https://briarproject.org/apk/briar-%s.apk'
REFERENCE_JAR_URL = 'https://briarproject.org/jar/briar-headless-%s.jar'
GRADLE_APK_TASK = "briar-android:assembleRelease"
GRADLE_JAR_TASK = "briar-headless:assemble"
GRADLE_JAR_TASK = "briar-headless:%s"
APK_PATH = "briar-android/build/outputs/apk/official/release/" + \
"briar-android-official-release-unsigned.apk"
OLD_APK_PATH = "briar-android/build/outputs/apk/release/briar-android-release-unsigned.apk"
JAR_PATH= "briar-headless/build/libs/briar-headless.jar"
JAR_PATH= "briar-headless/build/libs/briar-headless-%s.jar"
BUILD_DIR = "briar-build"
JAR_FLAVOURS = [
{
"task": "x86LinuxJar",
"file": "linux-x86_64"
},
{
"task": "aarch64LinuxJar",
"file": "linux-aarch64"
},
{
"task": "armhfLinuxJar",
"file": "linux-armhf"
}
]
def main():
if len(sys.argv) > 2:
......@@ -34,10 +49,21 @@ def main():
reference_apk = "briar-%s.apk" % version
check_call(['wget', '--no-verbose', apk_url, '-O', reference_apk])
jar_url = REFERENCE_JAR_URL % version
reference_jar = "briar-headless-%s.jar" % version
if version >= "1.2.10":
check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
reference_jars = list()
if version >= "1.2.17":
for flavour in JAR_FLAVOURS:
suffix = flavour['file'] + "-" + version
jar_url = REFERENCE_JAR_URL % suffix
reference_jar = "briar-headless-%s.jar" % suffix
reference_jars.append(reference_jar)
if version >= "1.2.10":
check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
else:
jar_url = REFERENCE_JAR_URL % version
reference_jar = "briar-headless-%s.jar" % version
reference_jars.append(reference_jar)
if version >= "1.2.10":
check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
# use non-deterministic file system for building the app to detect issues
if not os.path.exists(BUILD_DIR):
......@@ -46,18 +72,32 @@ def main():
atexit.register(unmount)
# build the app
check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, GRADLE_JAR_TASK], cwd=BUILD_DIR)
if version >= "1.2.17":
tasks = list()
for flavour in JAR_FLAVOURS:
tasks.append(GRADLE_JAR_TASK % flavour["task"])
check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, *tasks], cwd=BUILD_DIR)
else:
gradle_jar_task = "briar-headless:assemble"
check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, gradle_jar_task], cwd=BUILD_DIR)
# check if both APKs match
apk = os.path.join(BUILD_DIR, APK_PATH if version >= "1.1.0" else OLD_APK_PATH)
if not verify_apk(reference_apk, apk):
sys.exit(1)
# check if both jars match
# check if jars match pairwise
if version >= "1.2.10":
jar = os.path.join(BUILD_DIR, JAR_PATH)
if not verify_jar(reference_jar, jar):
sys.exit(1)
if version >= "1.2.17":
for i in range(len(JAR_FLAVOURS)):
flavour = JAR_FLAVOURS[i]
jar = os.path.join(BUILD_DIR, JAR_PATH % flavour["file"])
if not verify_jar(reference_jars[i], jar):
sys.exit(1)
else:
jar = os.path.join(BUILD_DIR, "briar-headless/build/libs/briar-headless.jar")
if not verify_jar(reference_jars[0], jar):
sys.exit(1)
print("Version '%s' was built reproducible! :)" % tag)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment