-
-
Notifications
You must be signed in to change notification settings - Fork 234
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·40 lines (35 loc) · 1.65 KB
/
build.sh
File metadata and controls
executable file
·40 lines (35 loc) · 1.65 KB
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
#!/bin/bash
# reactnativecommunity/react-native-android:18.0
BUILDER_IMAGE="reactnativecommunity/react-native-android@sha256:c390bfb35a15ffdf52538bdd0e6c5a926469cefa8c8c6da54bfd501c122de25d"
CONTAINER_NAME="zeus_builder_container"
ZEUS_PATH=/olympus/zeus
# SOURCE_DATE_EPOCH for reproducible builds - set to a fixed timestamp
# Can use the timestamp of a release commit (or use 0 for epoch)
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-0}"
# Default options for the Docker command
TTY_FLAG="-it"
# Parse arguments
while [[ "$#" -gt 0 ]]; do
case $1 in
--no-tty) TTY_FLAG="" ;; # Remove -it if --no-tty is provided
*) echo "Unknown parameter: $1" && exit 1 ;;
esac
shift
done
# Run the Docker command with SOURCE_DATE_EPOCH for reproducible builds
docker run --rm $TTY_FLAG --name $CONTAINER_NAME \
-e SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH \
-e GRADLE_USER_HOME=/olympus/zeus/.gradle-cache \
-v "$(pwd):$ZEUS_PATH" $BUILDER_IMAGE bash -c \
'echo -e "\n\n********************************\n*** Building ZEUS...\n********************************\n" && \
cd /olympus/zeus ; yarn install --frozen-lockfile && \
cd /olympus/zeus/android ; ./gradlew generateCodegenArtifactsFromSchema && ./gradlew app:assembleRelease && \
echo -e "\n\n********************************\n**** APKs and SHA256 Hashes\n********************************\n" && \
cd /olympus/zeus && \
for f in android/app/build/outputs/apk/release/*.apk;
do
RENAMED_FILENAME=$(echo $f | sed -e "s/app-/zeus-/" | sed -e "s/-release-unsigned//")
mv $f $RENAMED_FILENAME
sha256sum $RENAMED_FILENAME
done && \
echo -e "\n" ';