+ apt-get update
+ apt-get -y dist-upgrade
+ apt-get -y install git g++ clang faketime zip unzip curl openjdk-11-jdk
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh
+ chmod +x ./rustup.sh
+ ./rustup.sh -y
+ . $HOME/.cargo/env
+ rustup target add armv7-linux-androideabi
+ rustup target add aarch64-linux-android
+ rustup target add i686-linux-android
+ rustup target add x86_64-linux-android
+ - name: Checkout source code
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Install android NDK compilers
+ run: |
+ curl https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip > android-ndk-r22b-linux-x86_64.zip
+ if [ "$(sha256sum android-ndk-r22b-linux-x86_64.zip | awk '{ print $1 }')" != "ac3a0421e76f71dd330d0cd55f9d99b9ac864c4c034fc67e0d671d022d4e806b" ]; then
+ echo "Bad hash"
+ exit 1
+ fi
+ unzip android-ndk-r22b-linux-x86_64.zip
+ - name: Install cbindgen
+ run: |
+ . $HOME/.cargo/env
+ cargo install --force cbindgen
+ - name: Checkout Rust-Lightning and LDK-C-Bindings git
+ run: |
+ git config --global user.email "ldk-ci@example.com"
+ git config --global user.name "LDK CI"
+ # Note this is a different endpoint, as we need one non-upstream commit!
+ git clone https://git.bitcoin.ninja/rust-lightning
+ cd rust-lightning
+ git checkout origin/2021-03-java-bindings-base
+ cd ..
+ git clone https://github.com/lightningdevkit/ldk-c-bindings
+ cd ldk-c-bindings
+ git checkout 0.0.100
+ - name: Detect current git version
+ run: |
+ # We assume the top commit is just a bindings update commit, so we
+ # check out the previous commit to use as the commit we git describe.
+ # If the top commit is a merge commit, we need to get the last merge
+ # head and assume the latest bindings are built against its parent.
+ COMMIT_PARENTS=$(git show -s --pretty=format:%P HEAD)
+ if [ "${#COMMIT_PARENTS}" = 40 ]; then
+ export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD^1)"
+ else
+ MERGE_HEAD=$(git show --pretty=format:%P HEAD | ( for last in $(cat /dev/stdin); do true; done; echo $last ))
+ export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag $MERGE_HEAD^1)"
+ fi
+ echo "Using $LDK_GARBAGECOLLECTED_GIT_OVERRIDE as git version"
+ echo "$LDK_GARBAGECOLLECTED_GIT_OVERRIDE" > .git_ver
+ - name: Checkout Android AAR binaries and artifacts
+ run: git clone --depth 1 https://git.bitcoin.ninja/ldk-java-bins
+ - name: Build Android aar
+ run: |
+ . $HOME/.cargo/env
+ export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(cat .git_ver)"
+ cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-classes.jar" ./
+ export ANDROID_TOOLCHAIN="$(pwd)/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64"
+ export PATH="$PATH:$ANDROID_TOOLCHAIN/bin"
+ ./android-build.sh ./rust-lightning ./ldk-c-bindings/ ./ldk-java-bins/android-artifacts