diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 36 |
1 files changed, 25 insertions, 11 deletions
@@ -30,21 +30,35 @@ Layout Build ----- -The repository is self-contained: clone it and the build fetches and pins -everything else from source. The only host prerequisites are a POSIX shell, -curl, python3, tar, and git. The toolchain (JDK, Go, Android SDK and NDK, -Gradle) and the rsync source are downloaded and version-pinned by the build -(see versions for every pin). +The repository is self-contained: clone it and the build fetches everything +else. The host prerequisites are a POSIX shell, coreutils, make, curl, python3, +tar, and git. The toolchain archives and rsync source are version- and +checksum-pinned by the build (see versions for every pin). make setup # provision the toolchain into $HOME/toolchains . "$HOME/toolchains/env.sh" # put it on PATH (do this in each shell) make # rsync (NDK) -> rsh (Go) -> APK - make test # Go tests plus the host-side end-to-end push - make verify-repro # build twice, diff the artifacts - -The APK lands under app/build/outputs/apk/. It is unsigned by default; signing -config is local and gitignored. Continuous integration runs the same scripts: -ci/setup-toolchain.sh then ci/build.sh and ci/test.sh. + make test # Go, real-rsync integration, and Kotlin tests + make verify-repro # build twice, compare the unsigned APKs + +`make test` also requires host rsync. The APK lands under +app/build/outputs/apk/. It is unsigned by default and cannot be installed until +signed. Continuous integration runs the same scripts: ci/setup-toolchain.sh, +ci/build.sh, and ci/test.sh. + +For a locally installable APK, create a keystore and a gitignored +keystore.properties before building: + + keytool -genkeypair -keystore rsend.jks -alias rsend -keyalg EC -validity 3650 + cat > keystore.properties <<EOF + storeFile=rsend.jks + storePassword=change-me + keyAlias=rsend + keyPassword=change-me + EOF + +Keep both files private and backed up. The signed output is +app/build/outputs/apk/release/app-release.apk. Run |