diff --git a/.travis.yml b/.travis.yml index 42bcdc8ab..fef9701bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,10 +58,8 @@ jobs: - sudo apt-get update - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce - docker version - install: - - sudo docker build --no-cache -t electrum-wine-builder-img ./contrib/build-wine/ script: - - sudo docker run --name electrum-wine-builder-cont -v $PWD:/opt/wine64/drive_c/electrum --rm --workdir /opt/wine64/drive_c/electrum/contrib/build-wine electrum-wine-builder-img ./make_win.sh + - ELECBUILD_COMMIT=HEAD ./contrib/build-wine/build.sh after_success: true - if: (branch = master) OR (tag IS present) name: "Android build" @@ -69,13 +67,11 @@ jobs: python: 3.7 services: - docker - install: - - ./contrib/android/build_docker_image.sh script: - sudo chown -R 1000:1000 . # Output something every minute or Travis kills the job - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & - - sudo docker run -it -u 1000:1000 --rm --name electrum-android-builder-cont --env CI=true -v $PWD:/home/user/wspace/electrum --workdir /home/user/wspace/electrum electrum-android-builder-img ./contrib/android/make_apk + - ELECBUILD_COMMIT=HEAD ./contrib/android/build.sh # kill background sleep loop - kill %1 - ls -la dist @@ -100,10 +96,8 @@ jobs: python: false services: - docker - install: - - sudo docker build --no-cache -t electrum-appimage-builder-img ./contrib/build-linux/appimage/ script: - - sudo docker run --name electrum-appimage-builder-cont -v $PWD:/opt/electrum --rm --workdir /opt/electrum/contrib/build-linux/appimage electrum-appimage-builder-img ./make_appimage.sh + - ELECBUILD_COMMIT=HEAD ./contrib/build-linux/appimage/build.sh after_success: true - if: (branch = master) OR (tag IS present) name: "tarball build" @@ -111,19 +105,8 @@ jobs: python: false services: - docker - before_install: - # hack: travis already cloned the repo, but we re-clone now, as we need to have umask set BEFORE cloning - - umask 0022 - - mkdir fresh_clone && cd fresh_clone - - git clone https://github.com/$TRAVIS_REPO_SLUG.git && cd electrum - - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then git fetch origin pull/$TRAVIS_PULL_REQUEST/merge; fi - - git checkout $TRAVIS_COMMIT - - echo "Second git clone ready at $PWD" - install: - - sudo docker build --no-cache -t electrum-sdist-builder-img ./contrib/build-linux/sdist/ script: - - echo "Building sdist at $PWD" - - sudo docker run --name electrum-sdist-builder-cont -v $PWD:/opt/electrum --rm --workdir /opt/electrum/contrib/build-linux/sdist electrum-sdist-builder-img ./make_sdist.sh + - ELECBUILD_COMMIT=HEAD ./contrib/build-linux/sdist/build.sh after_success: true - stage: release check install: diff --git a/contrib/android/Readme.md b/contrib/android/Readme.md index b61cc7291..9ecaebd26 100644 --- a/contrib/android/Readme.md +++ b/contrib/android/Readme.md @@ -9,8 +9,7 @@ To generate an APK file, follow these instructions. binaries that match the official releases._ This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another -similar system. The docker commands should be executed in the project's root -folder. +similar system. 1. Install Docker @@ -21,47 +20,20 @@ folder. $ sudo apt-get install -y docker-ce ``` -2. Build image +2. Build binaries ``` - $ ./contrib/android/build_docker_image.sh + $ ./build.sh ``` - -3. Build binaries - - It's recommended to build from a fresh clone - (but you can skip this if reproducibility is not necessary). - + If you want reproducibility, try instead e.g.: ``` - $ FRESH_CLONE="contrib/android/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + $ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 ./build.sh release-unsigned ``` - - And then build from this directory: - ``` - $ git checkout $REV - $ mkdir --parents $PWD/.buildozer/.gradle - $ sudo docker run -it --rm \ - --name electrum-android-builder-cont \ - -v $PWD:/home/user/wspace/electrum \ - -v $PWD/.buildozer/.gradle:/home/user/.gradle \ - -v ~/.keystore:/home/user/.keystore \ - --workdir /home/user/wspace/electrum \ - electrum-android-builder-img \ - ./contrib/android/make_apk - ``` - - Note: this builds a debug apk. `make_apk` takes an optional parameter - which can be either `release` or `release-unsigned`. - This mounts the project dir inside the container, - and so the modifications will affect it, e.g. `.buildozer` folder - will be created. + Note: `build.sh` takes an optional parameter which can be + `release`, `release-unsigned`, or `debug` (default). -5. The generated binary is in `./dist`. +3. The generated binary is in `./dist`. ## Verifying reproducibility and comparing against official binary diff --git a/contrib/android/build.sh b/contrib/android/build.sh new file mode 100755 index 000000000..f199eb533 --- /dev/null +++ b/contrib/android/build.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# +# env vars: +# - ELECBUILD_NOCACHE: if set, forces rebuild of docker image +# - ELECBUILD_COMMIT: if set, do a fresh clone and git checkout + +set -e + +PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../.." +PROJECT_ROOT_OR_FRESHCLONE_ROOT="$PROJECT_ROOT" +CONTRIB="$PROJECT_ROOT/contrib" +CONTRIB_ANDROID="$CONTRIB/android" +DISTDIR="$PROJECT_ROOT/dist" + +. "$CONTRIB"/build_tools_util.sh + + +DOCKER_BUILD_FLAGS="" +if [ ! -z "$ELECBUILD_NOCACHE" ] ; then + info "ELECBUILD_NOCACHE is set. forcing rebuild of docker image." + DOCKER_BUILD_FLAGS="--pull --no-cache" +fi + +info "building docker image." +cp "$CONTRIB/deterministic-build/requirements-build-android.txt" "$CONTRIB_ANDROID/requirements-build-android.txt" +sudo docker build \ + $DOCKER_BUILD_FLAGS \ + -t electrum-android-builder-img \ + "$CONTRIB_ANDROID" +rm "$CONTRIB_ANDROID/requirements-build-android.txt" + + +# maybe do fresh clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." + FRESH_CLONE="$CONTRIB_ANDROID/fresh_clone/electrum" && \ + sudo rm -rf "$FRESH_CLONE" && \ + umask 0022 && \ + git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ + cd "$FRESH_CLONE" + git checkout "$ELECBUILD_COMMIT" + PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" +else + info "not doing fresh clone." +fi + +DOCKER_RUN_FLAGS="" +if [[ -n "$1" && "$1" == "release" ]] ; then + info "'release' mode selected. mounting ~/.keystore inside container." + DOCKER_RUN_FLAGS="-v $HOME/.keystore:/home/user/.keystore" +fi + +info "building binary..." +mkdir --parents "$PROJECT_ROOT_OR_FRESHCLONE_ROOT"/.buildozer/.gradle +sudo docker run -it --rm \ + --name electrum-android-builder-cont \ + -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/home/user/wspace/electrum \ + -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT"/.buildozer/.gradle:/home/user/.gradle \ + $DOCKER_RUN_FLAGS \ + --workdir /home/user/wspace/electrum \ + electrum-android-builder-img \ + ./contrib/android/make_apk "$@" + +# make sure resulting binary location is independent of fresh_clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + mkdir --parents "$DISTDIR/" + sudo cp -f "$FRESH_CLONE/dist"/* "$DISTDIR/" +fi diff --git a/contrib/android/build_docker_image.sh b/contrib/android/build_docker_image.sh deleted file mode 100755 index 3eae956c5..000000000 --- a/contrib/android/build_docker_image.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -CONTRIB_ANDROID="$(dirname "$(readlink -e "$0")")" -CONTRIB="$CONTRIB_ANDROID"/.. - -cp "$CONTRIB/deterministic-build/requirements-build-android.txt" "$CONTRIB_ANDROID/requirements-build-android.txt" -sudo docker build -t electrum-android-builder-img "$CONTRIB_ANDROID" -rm "$CONTRIB_ANDROID/requirements-build-android.txt" diff --git a/contrib/build-linux/appimage/README.md b/contrib/build-linux/appimage/README.md index b4712c000..838777b87 100644 --- a/contrib/build-linux/appimage/README.md +++ b/contrib/build-linux/appimage/README.md @@ -6,7 +6,6 @@ AppImage binary for Electrum This assumes an Ubuntu host, but it should not be too hard to adapt to another similar system. The host architecture should be x86_64 (amd64). -The docker commands should be executed in the project's root folder. We currently only build a single AppImage, for x86_64 architecture. Help to adapt these scripts to build for (some flavor of) ARM would be welcome, @@ -22,25 +21,17 @@ see [issue #5159](https://github.com/spesmilo/electrum/issues/5159). $ sudo apt-get install -y docker-ce ``` -2. Build image +2. Build binary ``` - $ sudo docker build -t electrum-appimage-builder-img contrib/build-linux/appimage + $ ./build.sh ``` - -3. Build binary - + If you want reproducibility, try instead e.g.: ``` - $ sudo docker run -it \ - --name electrum-appimage-builder-cont \ - -v $PWD:/opt/electrum \ - --rm \ - --workdir /opt/electrum/contrib/build-linux/appimage \ - electrum-appimage-builder-img \ - ./make_appimage.sh + $ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 ./build.sh ``` -4. The generated binary is in `./dist`. +3. The generated binary is in `./dist`. ## FAQ diff --git a/contrib/build-linux/appimage/build.sh b/contrib/build-linux/appimage/build.sh new file mode 100755 index 000000000..65b361081 --- /dev/null +++ b/contrib/build-linux/appimage/build.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# +# env vars: +# - ELECBUILD_NOCACHE: if set, forces rebuild of docker image +# - ELECBUILD_COMMIT: if set, do a fresh clone and git checkout + +set -e + +PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.." +PROJECT_ROOT_OR_FRESHCLONE_ROOT="$PROJECT_ROOT" +CONTRIB="$PROJECT_ROOT/contrib" +CONTRIB_APPIMAGE="$CONTRIB/build-linux/appimage" +DISTDIR="$PROJECT_ROOT/dist" + +. "$CONTRIB"/build_tools_util.sh + + +DOCKER_BUILD_FLAGS="" +if [ ! -z "$ELECBUILD_NOCACHE" ] ; then + info "ELECBUILD_NOCACHE is set. forcing rebuild of docker image." + DOCKER_BUILD_FLAGS="--pull --no-cache" +fi + +info "building docker image." +sudo docker build \ + $DOCKER_BUILD_FLAGS \ + -t electrum-appimage-builder-img \ + "$CONTRIB_APPIMAGE" + +# maybe do fresh clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." + FRESH_CLONE="$CONTRIB_APPIMAGE/fresh_clone/electrum" && \ + sudo rm -rf "$FRESH_CLONE" && \ + umask 0022 && \ + git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ + cd "$FRESH_CLONE" + git checkout "$ELECBUILD_COMMIT" + PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" +else + info "not doing fresh clone." +fi + +info "building binary..." +sudo docker run -it \ + --name electrum-appimage-builder-cont \ + -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/electrum \ + --rm \ + --workdir /opt/electrum/contrib/build-linux/appimage \ + electrum-appimage-builder-img \ + ./make_appimage.sh + +# make sure resulting binary location is independent of fresh_clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + mkdir --parents "$DISTDIR/" + sudo cp -f "$FRESH_CLONE/dist"/* "$DISTDIR/" +fi diff --git a/contrib/build-linux/sdist/README.md b/contrib/build-linux/sdist/README.md index d0b09f8c2..2ff3ed011 100644 --- a/contrib/build-linux/sdist/README.md +++ b/contrib/build-linux/sdist/README.md @@ -5,8 +5,7 @@ Source tarballs distributables that match the official releases._ This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another -similar system. The docker commands should be executed in the project's root -folder. +similar system. 1. Install Docker @@ -17,34 +16,14 @@ folder. $ sudo apt-get install -y docker-ce ``` -2. Build image +2. Build source tarball ``` - $ sudo docker build -t electrum-sdist-builder-img contrib/build-linux/sdist + $ ./build.sh ``` - -3. Build source tarballs - - It's recommended to build from a fresh clone - (but you can skip this if reproducibility is not necessary). - + If you want reproducibility, try instead e.g.: ``` - $ FRESH_CLONE="contrib/build-linux/sdist/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + $ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 ./build.sh ``` - And then build from this directory: - ``` - $ git checkout $REV - $ sudo docker run -it \ - --name electrum-sdist-builder-cont \ - -v $PWD:/opt/electrum \ - --rm \ - --workdir /opt/electrum/contrib/build-linux/sdist \ - electrum-sdist-builder-img \ - ./make_sdist.sh - ``` -4. The generated distributables are in `./dist`. +3. The generated distributables are in `./dist`. diff --git a/contrib/build-linux/sdist/build.sh b/contrib/build-linux/sdist/build.sh new file mode 100755 index 000000000..5f64c160e --- /dev/null +++ b/contrib/build-linux/sdist/build.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# +# env vars: +# - ELECBUILD_NOCACHE: if set, forces rebuild of docker image +# - ELECBUILD_COMMIT: if set, do a fresh clone and git checkout + +set -e + +PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.." +PROJECT_ROOT_OR_FRESHCLONE_ROOT="$PROJECT_ROOT" +CONTRIB="$PROJECT_ROOT/contrib" +CONTRIB_SDIST="$CONTRIB/build-linux/sdist" +DISTDIR="$PROJECT_ROOT/dist" + +. "$CONTRIB"/build_tools_util.sh + + +DOCKER_BUILD_FLAGS="" +if [ ! -z "$ELECBUILD_NOCACHE" ] ; then + info "ELECBUILD_NOCACHE is set. forcing rebuild of docker image." + DOCKER_BUILD_FLAGS="--pull --no-cache" +fi + +info "building docker image." +sudo docker build \ + $DOCKER_BUILD_FLAGS \ + -t electrum-sdist-builder-img \ + "$CONTRIB_SDIST" + +# maybe do fresh clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." + FRESH_CLONE="$CONTRIB_SDIST/fresh_clone/electrum" && \ + sudo rm -rf "$FRESH_CLONE" && \ + umask 0022 && \ + git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ + cd "$FRESH_CLONE" + git checkout "$ELECBUILD_COMMIT" + PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" +else + info "not doing fresh clone." +fi + +info "building binary..." +sudo docker run -it \ + --name electrum-sdist-builder-cont \ + -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/electrum \ + --rm \ + --workdir /opt/electrum/contrib/build-linux/sdist \ + electrum-sdist-builder-img \ + ./make_sdist.sh + +# make sure resulting binary location is independent of fresh_clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + mkdir --parents "$DISTDIR/" + sudo cp -f "$FRESH_CLONE/dist"/* "$DISTDIR/" +fi diff --git a/contrib/build-wine/README.md b/contrib/build-wine/README.md index e213a98c8..61fdf205d 100644 --- a/contrib/build-wine/README.md +++ b/contrib/build-wine/README.md @@ -5,8 +5,7 @@ Windows binaries binaries that match the official releases._ This assumes an Ubuntu (x86_64) host, but it should not be too hard to adapt to another -similar system. The docker commands should be executed in the project's root -folder. +similar system. 1. Install Docker @@ -21,39 +20,17 @@ folder. (see [#6971](https://github.com/spesmilo/electrum/issues/6971)). If having problems, try to upgrade to at least `docker 20.10`. -2. Build image +2. Build Windows binaries ``` - $ sudo docker build -t electrum-wine-builder-img contrib/build-wine + $ ./build.sh ``` - - Note: see [this](https://stackoverflow.com/a/40516974/7499128) if having dns problems - -3. Build Windows binaries - - It's recommended to build from a fresh clone - (but you can skip this if reproducibility is not necessary). - + If you want reproducibility, try instead e.g.: ``` - $ FRESH_CLONE="contrib/build-wine/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" + $ ELECBUILD_COMMIT=HEAD ELECBUILD_NOCACHE=1 ./build.sh ``` - And then build from this directory: - ``` - $ git checkout $REV - $ sudo docker run -it \ - --name electrum-wine-builder-cont \ - -v $PWD:/opt/wine64/drive_c/electrum \ - --rm \ - --workdir /opt/wine64/drive_c/electrum/contrib/build-wine \ - electrum-wine-builder-img \ - ./make_win.sh - ``` -4. The generated binaries are in `./contrib/build-wine/dist`. +3. The generated binaries are in `./contrib/build-wine/dist`. diff --git a/contrib/build-wine/build.sh b/contrib/build-wine/build.sh new file mode 100755 index 000000000..ff0c062da --- /dev/null +++ b/contrib/build-wine/build.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# +# env vars: +# - ELECBUILD_NOCACHE: if set, forces rebuild of docker image +# - ELECBUILD_COMMIT: if set, do a fresh clone and git checkout + +set -e + +PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../.." +PROJECT_ROOT_OR_FRESHCLONE_ROOT="$PROJECT_ROOT" +CONTRIB="$PROJECT_ROOT/contrib" +CONTRIB_WINE="$CONTRIB/build-wine" + +. "$CONTRIB"/build_tools_util.sh + + +DOCKER_BUILD_FLAGS="" +if [ ! -z "$ELECBUILD_NOCACHE" ] ; then + info "ELECBUILD_NOCACHE is set. forcing rebuild of docker image." + DOCKER_BUILD_FLAGS="--pull --no-cache" +fi + +info "building docker image." +sudo docker build \ + $DOCKER_BUILD_FLAGS \ + -t electrum-wine-builder-img \ + "$CONTRIB_WINE" + +# maybe do fresh clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + info "ELECBUILD_COMMIT=$ELECBUILD_COMMIT. doing fresh clone and git checkout." + FRESH_CLONE="$CONTRIB_WINE/fresh_clone/electrum" && \ + sudo rm -rf "$FRESH_CLONE" && \ + umask 0022 && \ + git clone "$PROJECT_ROOT" "$FRESH_CLONE" && \ + cd "$FRESH_CLONE" + git checkout "$ELECBUILD_COMMIT" + PROJECT_ROOT_OR_FRESHCLONE_ROOT="$FRESH_CLONE" +else + info "not doing fresh clone." +fi + +info "building binary..." +sudo docker run -it \ + --name electrum-wine-builder-cont \ + -v "$PROJECT_ROOT_OR_FRESHCLONE_ROOT":/opt/wine64/drive_c/electrum \ + --rm \ + --workdir /opt/wine64/drive_c/electrum/contrib/build-wine \ + electrum-wine-builder-img \ + ./make_win.sh + +# make sure resulting binary location is independent of fresh_clone +if [ ! -z "$ELECBUILD_COMMIT" ] ; then + mkdir --parents "$PROJECT_ROOT/contrib/build-wine/dist/" + sudo cp -f "$FRESH_CLONE/contrib/build-wine/dist"/* "$PROJECT_ROOT/contrib/build-wine/dist/" +fi diff --git a/contrib/release.sh b/contrib/release.sh index fa33b491a..f91945562 100755 --- a/contrib/release.sh +++ b/contrib/release.sh @@ -24,6 +24,9 @@ REV=`git describe --tags` echo "REV: $REV" COMMIT=$(git rev-parse HEAD) +export ELECBUILD_COMMIT="${COMMIT}^{commit}" +#export ELECBUILD_NOCACHE=1 + git_status=$(git status --porcelain) if [ ! -z "$git_status" ]; then @@ -39,23 +42,7 @@ target=Electrum-$VERSION.tar.gz if test -f dist/$target; then echo "file exists: $target" else - pushd . - sudo docker build -t electrum-sdist-builder-img contrib/build-linux/sdist - FRESH_CLONE="contrib/build-linux/sdist/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" - git checkout "${COMMIT}^{commit}" - sudo docker run -it \ - --name electrum-sdist-builder-cont \ - -v $PWD:/opt/electrum \ - --rm \ - --workdir /opt/electrum/contrib/build-linux/sdist \ - electrum-sdist-builder-img \ - ./make_sdist.sh - popd - cp /opt/electrum/contrib/build-linux/sdist/fresh_clone/electrum/dist/$target dist/ + ./contrib/build-linux/sdist/build.sh fi # appimage @@ -68,14 +55,7 @@ fi if test -f dist/$target; then echo "file exists: $target" else - sudo docker build -t electrum-appimage-builder-img contrib/build-linux/appimage - sudo docker run -it \ - --name electrum-appimage-builder-cont \ - -v $PWD:/opt/electrum \ - --rm \ - --workdir /opt/electrum/contrib/build-linux/appimage \ - electrum-appimage-builder-img \ - ./make_appimage.sh + ./contrib/build-linux/appimage/build.sh fi @@ -85,20 +65,7 @@ if test -f dist/$target; then echo "file exists: $target" else pushd . - FRESH_CLONE="contrib/build-wine/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" - git checkout "${COMMIT}^{commit}" - sudo docker run -it \ - --name electrum-wine-builder-cont \ - -v $PWD:/opt/wine64/drive_c/electrum \ - --rm \ - --workdir /opt/wine64/drive_c/electrum/contrib/build-wine \ - electrum-wine-builder-img \ - ./make_win.sh - # do this in the fresh clone directory! + ./contrib/build-wine/build.sh cd contrib/build-wine/ ./sign.sh cp ./signed/*.exe /opt/electrum/dist/ @@ -112,28 +79,7 @@ target2=Electrum-$VERSION.0-arm64-v8a-release.apk if test -f dist/$target1; then echo "file exists: $target1" else - pushd . - ./contrib/android/build_docker_image.sh - FRESH_CLONE="contrib/android/fresh_clone/electrum" && \ - sudo rm -rf "$FRESH_CLONE" && \ - umask 0022 && \ - git clone . "$FRESH_CLONE" && \ - cd "$FRESH_CLONE" - git checkout "${COMMIT}^{commit}" - mkdir --parents $PWD/.buildozer/.gradle - sudo docker run -it --rm \ - --name electrum-android-builder-cont \ - -v $PWD:/home/user/wspace/electrum \ - -v $PWD/.buildozer/.gradle:/home/user/.gradle \ - -v ~/.keystore:/home/user/.keystore \ - --workdir /home/user/wspace/electrum \ - electrum-android-builder-img \ - ./contrib/android/make_apk release - popd - - cp contrib/android/fresh_clone/electrum/dist/$target1 dist/ - cp contrib/android/fresh_clone/electrum/dist/$target2 dist/ - + ./contrib/android/build.sh release fi @@ -153,7 +99,7 @@ fi echo "build complete" sha256sum dist/*.tar.gz sha256sum dist/*.AppImage -sha256sum contrib/build-wine/fresh_clone/electrum/contrib/build-wine/dist/*.exe +sha256sum contrib/build-wine/dist/*.exe echo -n "proceed (y/n)? " read answer