Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
briar-reproducer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
briar
briar-reproducer
Compare revisions
master to testAndroidX
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
briar/briar-reproducer
Select target project
No results found
testAndroidX
Select Git revision
Swap
Target
briar/briar-reproducer
Select target project
briar/briar-reproducer
1 result
master
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (3)
DO NOT MERGE test AndroidX build
· 9da4de68
Torsten Grote
authored
5 years ago
9da4de68
publish build artifacts
· 8c676f28
Torsten Grote
authored
5 years ago
8c676f28
print absolute path of APK
· 299a8a70
Torsten Grote
authored
5 years ago
299a8a70
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitignore
+1
-0
1 addition, 0 deletions
.gitignore
.gitlab-ci.yml
+17
-1
17 additions, 1 deletion
.gitlab-ci.yml
reproduce.py
+12
-4
12 additions, 4 deletions
reproduce.py
with
30 additions
and
5 deletions
.gitignore
View file @
299a8a70
.idea
*.apk
briar
This diff is collapsed.
Click to expand it.
.gitlab-ci.yml
View file @
299a8a70
...
...
@@ -13,6 +13,7 @@ variables:
TEST_IMAGE
:
briar/reproducer:${CI_BUILD_REF_NAME}
RELEASE_IMAGE
:
briar/reproducer:latest
TAG_IMAGE
:
briar/reproducer:${RELEASE_TAG}
APK_PATH
:
/opt/briar-reproducer/briar/briar-android/build/outputs/apk/official/release/briar-android-official-release-unsigned.apk
before_script
:
-
echo ${DOCKER_HUB_PASS} | docker login -u ${DOCKER_HUB_USER} --password-stdin
...
...
@@ -30,7 +31,12 @@ test_success:
script
:
# Consider adding the cap and the device directly to the CI config
# https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-docker-section
-
docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./reproduce.py release-1.1.7
-
docker run --cap-add SYS_ADMIN --device /dev/fuse ${TEST_IMAGE} ./reproduce.py AndroidX
artifacts
:
paths
:
-
${APK_PATH}
expire_in
:
1 week
when
:
on_failure
except
:
-
triggers
...
...
@@ -47,6 +53,11 @@ release:
-
docker pull $TEST_IMAGE
-
docker tag $TEST_IMAGE $RELEASE_IMAGE
-
docker push $RELEASE_IMAGE
artifacts
:
paths
:
-
${APK_PATH}
expire_in
:
1 week
when
:
on_failure
only
:
-
master
-
tags
...
...
@@ -59,5 +70,10 @@ check:
-
docker run --cap-add SYS_ADMIN --device /dev/fuse ${RELEASE_IMAGE} ./reproduce.py ${RELEASE_TAG}
-
docker tag ${RELEASE_IMAGE} ${TAG_IMAGE}
-
docker push ${TAG_IMAGE}
artifacts
:
paths
:
-
${APK_PATH}
expire_in
:
1 week
when
:
on_failure
only
:
-
triggers
This diff is collapsed.
Click to expand it.
reproduce.py
View file @
299a8a70
...
...
@@ -22,10 +22,12 @@ def main():
tag
=
prepare_repo
(
tag
)
# download reference binary (before building to detect missing file early on)
version
=
tag
.
split
(
'
-
'
)[
1
]
url
=
REFERENCE_URL
%
version
reference_apk
=
"
briar-%s.apk
"
%
version
check_call
([
'
wget
'
,
'
--no-verbose
'
,
url
,
'
-O
'
,
reference_apk
])
# version = tag.split('-')[1]
# url = REFERENCE_URL % version
# reference_apk = "briar-%s.apk" % version
# check_call(['wget', '--no-verbose', url, '-O', reference_apk])
version
=
"
1.2.0
"
reference_apk
=
"
briar-1.2.0.apk
"
# use non-deterministic file system for building the app to detect issues
if
not
os
.
path
.
exists
(
BUILD_DIR
):
...
...
@@ -37,6 +39,12 @@ def main():
# check if both APKs match
apk
=
os
.
path
.
join
(
BUILD_DIR
,
APK_PATH
if
version
>=
"
1.1.0
"
else
OLD_APK_PATH
)
print
(
os
.
path
.
abspath
(
apk
))
check_call
([
"
sha256sum
"
,
apk
])
print
(
os
.
path
.
abspath
(
os
.
path
.
join
(
REPO_DIR
,
APK_PATH
)))
check_call
([
"
sha256sum
"
,
os
.
path
.
abspath
(
os
.
path
.
join
(
REPO_DIR
,
APK_PATH
))])
if
call
([
'
./verify-apk.py
'
,
reference_apk
,
apk
])
==
0
:
print
(
"
Version
'
%s
'
was built reproducible! :)
"
%
tag
)
sys
.
exit
(
0
)
...
...
This diff is collapsed.
Click to expand it.