diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8b13789..a46770b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1 +1,148 @@ +name: Publish Assets +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build_arm64_aar: + runs-on: ubuntu-latest + container: lbry/android-base:python39 + steps: + - name: checkout + uses: actions/checkout@v3 + - name: hacky copy # docker image runs ~ as /root, but github actions uses ~=/github/home + run: | + cp -r /root/.buildozer ~/.buildozer/ + - name: setup + run: | + export B_VERSION=$(cat $GITHUB_WORKSPACE/src/main/python/main.py | grep --color=never -oP '([0-9]+\.?)+') + echo "NEXUS_SIGNING_KEYRING_FILE=$GITHUB_WORKSPACE/signing2.pgp" >> $GITHUB_ENV + echo "BUILD_VERSION=${B_VERSION}" >> $GITHUB_ENV + export PATH=/usr/bin:$PATH + wget -q 'https://eu.crystax.net/download/crystax-ndk-10.3.2-linux-x86_64.tar.xz' -P ~/.buildozer/android/ + tar -xf ~/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz -C ~/.buildozer/android/ + rm -rf ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9 + ln -s ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-21 ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9 + cp -f $GITHUB_WORKSPACE/scripts/build-target-python.sh ~/.buildozer/android/crystax-ndk-10.3.2/build/tools/build-target-python.sh + cp -f $GITHUB_WORKSPACE/scripts/mangled-glibc-syscalls__arm64.h ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-21/arch-arm64/usr/include/crystax/bionic/libc/include/sys/mangled-glibc-syscalls.h + cp -f $GITHUB_WORKSPACE/scripts/build-binary.mk ~/.buildozer/android/crystax-ndk-10.3.2/build/core/build-binary.mk + rm -rf ~/.buildozer/android/crystax-ndk-10.3.2/sources/sqlite + cp -Rf $GITHUB_WORKSPACE/scripts/crystax-sources/sqlite ~/.buildozer/android/crystax-ndk-10.3.2/sources/sqlite + rm ~/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz + mv buildozer.spec.arm64.ci buildozer.spec + chmod u+x ./build-release.sh + - name: build release + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} + NEXUS_SIGNING_KEY_PASSWORD: ${{ secrets.NEXUS_SIGNING_KEY_PASSWORD }} + NEXUS_SIGNING_KEY_ID: ${{ secrets.NEXUS_SIGNING_KEY_ID }} + run: ./build-release.sh + - name: debug bin + run : ls -al ./bin + - name: upload to build_lbry_io + run : | + pip install awscli + export PR_NUMBER=${{ github.event.number }} + + export BUILD_APK_FILENAME__64=lbrysdk-${{ env.BUILD_VERSION }}-arm64-v8a-release.aar + aws s3 cp ./bin/${BUILD_APK_FILENAME__64} s3://build.lbry.io/android/sdk-build-${PR_NUMBER}_commit-${{ github.sha }}/${BUILD_APK_FILENAME__64} + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + - name: github release + if: startsWith(github.ref, 'refs/tags/v') + run: | + pip install githubrelease + export GITHUB_TOKEN=${{ github.token }} + githubrelease release lbryio/lbry-android-sdk create ${{ github.ref_name }} --publish bin/${BUILD_APK_FILENAME__64} + + build_arm_aar: + runs-on: ubuntu-latest + container: lbry/android-base:python39 + needs: [build_arm64_aar] + steps: + - name: checkout + uses: actions/checkout@v3 + - name: hacky copy # docker image runs ~ as /root, but github actions uses ~=/github/home + run: | + cp -r /root/.buildozer ~/.buildozer/ + - name: setup + run: | + export B_VERSION=$(cat $GITHUB_WORKSPACE/src/main/python/main.py | grep --color=never -oP '([0-9]+\.?)+') + echo "BUILD_VERSION=${B_VERSION}" >> $GITHUB_ENV + echo "NEXUS_SIGNING_KEYRING_FILE=$GITHUB_WORKSPACE/signing2.pgp" >> $GITHUB_ENV + export PATH=/usr/bin:$PATH + wget -q 'https://eu.crystax.net/download/crystax-ndk-10.3.2-linux-x86_64.tar.xz' -P ~/.buildozer/android/ + tar -xf ~/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz -C ~/.buildozer/android/ + rm -rf ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9 + ln -s ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-21 ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9 + cp -f $GITHUB_WORKSPACE/p4a/pythonforandroid/bootstraps/lbry/build/templates/build.tmpl.gradle.arm $GITHUB_WORKSPACE/p4a/pythonforandroid/bootstraps/lbry/build/templates/build.tmpl.gradle + cp -f $GITHUB_WORKSPACE/scripts/build-target-python.sh ~/.buildozer/android/crystax-ndk-10.3.2/build/tools/build-target-python.sh + cp -f $GITHUB_WORKSPACE/scripts/mangled-glibc-syscalls.h ~/.buildozer/android/crystax-ndk-10.3.2/platforms/android-21/arch-arm/usr/include/crystax/bionic/libc/include/sys/mangled-glibc-syscalls.h + cp -f $GITHUB_WORKSPACE/scripts/build-binary.mk ~/.buildozer/android/crystax-ndk-10.3.2/build/core/build-binary.mk + rm -rf ~/.buildozer/android/crystax-ndk-10.3.2/sources/sqlite + cp -Rf $GITHUB_WORKSPACE/scripts/crystax-sources/sqlite ~/.buildozer/android/crystax-ndk-10.3.2/sources/sqlite + rm ~/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz + mv buildozer.spec.arm64.ci buildozer.spec + chmod u+x ./build-release.sh + - name: build release + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} + NEXUS_SIGNING_KEY_PASSWORD: ${{ secrets.NEXUS_SIGNING_KEY_PASSWORD }} + NEXUS_SIGNING_KEY_ID: ${{ secrets.NEXUS_SIGNING_KEY_ID }} + run: ./build-release.sh + - name: upload to build_lbry_io + run : | + pip install awscli + export PR_NUMBER=${{ github.event.number }} + export BUILD_APK_FILENAME__32=lbrysdk-${{ env.BUILD_VERSION }}-armeabi-v7a-release.aar + aws s3 cp bin/${BUILD_APK_FILENAME__32} s3://build.lbry.io/android/sdk-build-{$PR_NUMBER}_commit-${{ github.sha }}/${BUILD_APK_FILENAME__32} + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + - name: github upload binary + if: startsWith(github.ref, 'refs/tags/v') + uses: skx/github-action-publish-binaries@release-1.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_VERSION: ${{ env.BUILD_VERSION }} + with: + args: bin/${BUILD_APK_FILENAME__32} + # deploy_build_lbry_io: + # runs-on: ubuntu-latest + # container: lbry/android-base:python39 + # needs: [build_arm64_aar, build_arm_aar] + # steps: + # - name: dependencies + # run: | + # pip install awscli + # export PR_NUMBER=${{ github.event.number }} + # export BUILD_VERSION=$(cat $GITHUB_WORKSPACE/src/main/python/main.py | grep --color=never -oP '([0-9]+\.?)+') + # export BUILD_APK_FILENAME__32=lbrysdk-${{ BUILD_VERSION }}-armeabi-v7a-release.aar + # export BUILD_APK_FILENAME__64=lbrysdk-${{ BUILD_VERSION }}-arm64-v8a-release.aar + # - name: upload + # run: | + # aws s3 cp bin/${{ BUILD_APK_FILENAME__64 }} s3://build.lbry.io/android/sdk-build-${{ PR_NUMBER }}_commit-${{ github.sha }}/${{ BUILD_APK_FILENAME__64 }} + # aws s3 cp bin/${{ BUILD_APK_FILENAME__32 }} s3://build.lbry.io/android/sdk-build-${{ PR_NUMBER }}_commit-${{ github.sha }}/${{ BUILD_APK_FILENAME__32 }} + + # release_aar: + # runs-on: ubuntu-latest + # container: python:latest + # needs: [build_arm64_aar, build_arm_aar] + # steps: + # - name: dependencies + # run: | + # pip install awscli githubrelease + # export BUILD_VERSION=$(cat $GITHUB_WORKSPACE/src/main/python/main.py | grep --color=never -oP '([0-9]+\.?)+') + # export BUILD_APK_FILENAME__32=lbrysdk-${{ BUILD_VERSION }}-armeabi-v7a-release.aar + # export BUILD_APK_FILENAME__64=lbrysdk-${{ BUILD_VERSION }}-arm64-v8a-release.aar + # - name: release diff --git a/.gitignore b/.gitignore index 96477a2..b39ffe8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ src/main/assets/index.android.bundle src/main/assets/index.android.bundle.meta *.log .vagrant +.vscode lbry-android.keystore p4a/pythonforandroid/bootstraps/lbry/build/templates/google-services.json diff --git a/BUILD.md b/BUILD.md index 5de63cf..5da6575 100644 --- a/BUILD.md +++ b/BUILD.md @@ -135,3 +135,17 @@ If you already installed `Android SDK` and `adb` Note: You need to have your device connected with USB debugging. Once the bundler is ready, run the LBRY Browser app on your device and then shake the device violently until you see the React Native dev menu. You can enable "Live Reloading" and "Hot Reloading" from this menu, so any changes you make to the React Native code will be visible as you save. This will only reload React Native Javascript files. Native Java code needs to be redeployed by running the command `./deploy.sh` + +## Update LBRY SDK Version + +### Update the `requirements` section following files +* buildozer.spec.arm.ci +* buildozer.spec.arm64.ci +* buildozer.spec.sample +* buildozer.spec.vagrant + +### Update LBRY_SDK_VERSION in `src/main/java/io/lbry/lbrysdk/LbrynetService.java` + +### Update the version in `src/main/python/main.py` + +## Github Actions CI \ No newline at end of file diff --git a/signing2.pgp b/signing2.pgp new file mode 100644 index 0000000..da549e4 Binary files /dev/null and b/signing2.pgp differ diff --git a/src/main/python/main.py b/src/main/python/main.py index eb853da..7b8d814 100644 --- a/src/main/python/main.py +++ b/src/main/python/main.py @@ -1,5 +1,5 @@ # going forward, this should match sdk version -__version__ = "0.102.0" +__version__ = "0.111.0" class ServiceApp(App): def build(self):