diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2019-08-08 18:47:32 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2019-08-08 18:47:32 +0200 |
| commit | 0b7d250e9c4783f80e5ffe925f99df0503e80a83 (patch) | |
| tree | 043ab3da4e36226d44119c10065f58b4335b627a | |
| parent | 7d8192267574d71777aec7ef694081bf998747ec (diff) | |
| parent | 7c6caeb8a04a30ae66629ff1aa4bf5bc13841c0d (diff) | |
| download | mullvadvpn-0b7d250e9c4783f80e5ffe925f99df0503e80a83.tar.xz mullvadvpn-0b7d250e9c4783f80e5ffe925f99df0503e80a83.zip | |
Merge branch 'build-android-on-buildservers'
| -rwxr-xr-x | build-apk.sh | 27 | ||||
| -rwxr-xr-x | build.sh | 25 | ||||
| -rwxr-xr-x | ci/buildserver-build.sh | 6 | ||||
| -rwxr-xr-x | ci/buildserver-upload.sh | 4 |
4 files changed, 39 insertions, 23 deletions
diff --git a/build-apk.sh b/build-apk.sh index e69c57c563..43c9eabaef 100755 --- a/build-apk.sh +++ b/build-apk.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -e +set -eu SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$SCRIPT_DIR" @@ -27,19 +27,17 @@ fi if [[ "$BUILD_TYPE" == "debug" || "$(git describe)" != "$PRODUCT_VERSION" ]]; then GIT_COMMIT="$(git rev-parse --short HEAD)" - APK_VERSION="${PRODUCT_VERSION}-dev-${GIT_COMMIT}" -else - APK_VERSION="$PRODUCT_VERSION" + PRODUCT_VERSION="${PRODUCT_VERSION}-dev-${GIT_COMMIT}" + echo "Modifying product version to $PRODUCT_VERSION" fi -ARCHITECTURES="aarch64 armv7 x86_64 i686" - cd "$SCRIPT_DIR/android" ./gradlew --console plain clean mkdir -p "${SCRIPT_DIR}/android/build/extraJni" cd "$SCRIPT_DIR" +ARCHITECTURES="aarch64 armv7 x86_64 i686" for ARCHITECTURE in $ARCHITECTURES; do case "$ARCHITECTURE" in "x86_64") @@ -60,7 +58,8 @@ for ARCHITECTURE in $ARCHITECTURES; do ;; esac - . env.sh "$TARGET" + echo "Building mullvad-daemon for $TARGET" + source env.sh "$TARGET" cargo build $CARGO_FLAGS --target "$TARGET" --package mullvad-jni cp -a "$SCRIPT_DIR/dist-assets/binaries/$TARGET" "$SCRIPT_DIR/android/build/extraJni/$ABI" @@ -70,7 +69,15 @@ done cd "$SCRIPT_DIR/android" ./gradlew --console plain "$GRADLE_TASK" -GENERATED_APK="$SCRIPT_DIR/android/build/outputs/apk/$BUILD_TYPE/android-$BUILD_TYPE.apk" +mkdir -p "$SCRIPT_DIR/dist" +cp "$SCRIPT_DIR/android/build/outputs/apk/$BUILD_TYPE/android-$BUILD_TYPE.apk" \ + "$SCRIPT_DIR/dist/MullvadVPN-${PRODUCT_VERSION}${APK_SUFFIX}.apk" -mkdir -p ../dist -cp "$GENERATED_APK" "$SCRIPT_DIR/dist/MullvadVPN-${APK_VERSION}${APK_SUFFIX}.apk" +echo "**********************************" +echo "" +echo " The build finished successfully! " +echo " You have built:" +echo "" +echo " $PRODUCT_VERSION" +echo "" +echo "**********************************" @@ -20,6 +20,7 @@ CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-"$SCRIPT_DIR/target"} source env.sh "" if [[ "${1:-""}" != "--dev-build" ]]; then + BUILD_MODE="release" if [[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]]; then echo "Dirty working directory!" echo "You should only build releases in clean working directories in order to make it" @@ -46,12 +47,13 @@ if [[ "${1:-""}" != "--dev-build" ]]; then export CSC_IDENTITY_AUTO_DISCOVERY=false fi else + BUILD_MODE="dev" echo "!! Development build. Not for general distribution !!" unset CSC_LINK CSC_KEY_PASSWORD export CSC_IDENTITY_AUTO_DISCOVERY=false fi -if [[ "${1:-""}" == "--dev-build" || $(git describe) != "$PRODUCT_VERSION" ]]; then +if [[ "$BUILD_MODE" == "dev" || $(git describe) != "$PRODUCT_VERSION" ]]; then GIT_COMMIT=$(git rev-parse --short HEAD) PRODUCT_VERSION="$PRODUCT_VERSION-dev-$GIT_COMMIT" echo "Modifying product version to $PRODUCT_VERSION" @@ -59,20 +61,15 @@ else echo "Removing old Rust build artifacts" cargo +stable clean fi -if [[ "${1:-""}" == "--dev-build" ]]; then - # Disable installer compression on *explicit* dev builds. - # This does not disable compression on build server builds, since they - # always run without --dev-buid. - echo "Disabling compression of installer in this dev build" - cp gui/electron-builder.yml gui/electron-builder.yml.bak - echo "compression: store" >> gui/electron-builder.yml -fi echo "Building Mullvad VPN $PRODUCT_VERSION" SEMVER_VERSION=$(echo $PRODUCT_VERSION | sed -Ee 's/($|-.*)/.0\1/g') function restore_metadata_backups() { pushd "$SCRIPT_DIR" + if [[ "$BUILD_MODE" == "dev" ]]; then + mv gui/electron-builder.yml.bak gui/electron-builder.yml || true + fi mv gui/package.json.bak gui/package.json || true mv gui/package-lock.json.bak gui/package-lock.json || true mv Cargo.lock.bak Cargo.lock || true @@ -81,11 +78,19 @@ function restore_metadata_backups() { mv mullvad-problem-report/Cargo.toml.bak mullvad-problem-report/Cargo.toml || true mv talpid-openvpn-plugin/Cargo.toml.bak talpid-openvpn-plugin/Cargo.toml || true mv dist-assets/windows/version.h.bak dist-assets/windows/version.h || true - mv gui/electron-builder.yml.bak gui/electron-builder.yml || true popd } trap 'restore_metadata_backups' EXIT +if [[ "$BUILD_MODE" == "dev" ]]; then + # Disable installer compression on *explicit* dev builds. + # This does not disable compression on build server builds, since they + # always run without --dev-buid. + echo "Disabling compression of installer in this dev build" + cp gui/electron-builder.yml gui/electron-builder.yml.bak + echo "compression: store" >> gui/electron-builder.yml +fi + sed -i.bak \ -Ee "s/\"version\": \"[^\"]+\",/\"version\": \"$SEMVER_VERSION\",/g" \ gui/package.json diff --git a/ci/buildserver-build.sh b/ci/buildserver-build.sh index 89a16c1185..5e9a5f88c5 100755 --- a/ci/buildserver-build.sh +++ b/ci/buildserver-build.sh @@ -66,7 +66,7 @@ sign_win() { upload() { current_hash=$1 - for f in MullvadVPN-*.{deb,rpm,exe,pkg}; do + for f in MullvadVPN-*.{deb,rpm,exe,pkg,apk}; do sha256sum "$f" > "$f.sha256" case "$(uname -s)" in # Linux is both the build and upload server. Just move directly to target dir @@ -129,6 +129,10 @@ build_ref() { echo "Packaging all PDB files..." find ./windows/ -iname "*.pdb" | tar -cJf $SCRIPT_DIR/pdb/$current_hash.tar.xz -T - ;; + Linux*) + echo "Building Android APK" + ./build-apk.sh || return 0 + ;; esac (cd dist/ && upload $current_hash) || return 0 diff --git a/ci/buildserver-upload.sh b/ci/buildserver-upload.sh index 4e420a0159..20ef1e8618 100755 --- a/ci/buildserver-upload.sh +++ b/ci/buildserver-upload.sh @@ -9,7 +9,7 @@ cd $UPLOAD_DIR while true; do sleep 10 - for f_checksum in MullvadVPN-*.{deb,rpm,exe,pkg}.sha256; do + for f_checksum in MullvadVPN-*.{deb,rpm,exe,pkg,apk}.sha256; do sleep 1 f="${f_checksum/.sha256/}" if ! sha256sum --quiet -c "$f_checksum"; then @@ -17,7 +17,7 @@ while true; do continue fi - version=$(echo $f | sed -Ee 's/MullvadVPN-(.*)(\.exe|\.pkg|_amd64\.deb|_x86_64\.rpm)/\1/g') + version=$(echo $f | sed -Ee 's/MullvadVPN-(.*)(\.exe|\.pkg|_amd64\.deb|_x86_64\.rpm|.apk)/\1/g') ssh build.mullvad.net mkdir -p "app/$version" || continue scp -pB "$f" build.mullvad.net:app/$version/ || continue |
