summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2019-08-08 18:47:32 +0200
committerLinus Färnstrand <linus@mullvad.net>2019-08-08 18:47:32 +0200
commit0b7d250e9c4783f80e5ffe925f99df0503e80a83 (patch)
tree043ab3da4e36226d44119c10065f58b4335b627a
parent7d8192267574d71777aec7ef694081bf998747ec (diff)
parent7c6caeb8a04a30ae66629ff1aa4bf5bc13841c0d (diff)
downloadmullvadvpn-0b7d250e9c4783f80e5ffe925f99df0503e80a83.tar.xz
mullvadvpn-0b7d250e9c4783f80e5ffe925f99df0503e80a83.zip
Merge branch 'build-android-on-buildservers'
-rwxr-xr-xbuild-apk.sh27
-rwxr-xr-xbuild.sh25
-rwxr-xr-xci/buildserver-build.sh6
-rwxr-xr-xci/buildserver-upload.sh4
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 "**********************************"
diff --git a/build.sh b/build.sh
index 74c9176172..9b4c25cd0d 100755
--- a/build.sh
+++ b/build.sh
@@ -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