diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 8f55344..4bd8759 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -6,6 +6,7 @@ on: - "*" branches-ignore: - master + - ci jobs: build: @@ -21,12 +22,22 @@ jobs: sha=$(git rev-parse HEAD) [[ "${{ github.sha }}" == "${sha}" ]] && test=false || test=true echo "test=${test}" >> "$FORGEJO_OUTPUT" + - uses: actions/cache@v5 + if: ${{ steps.check.outputs.test == 'true' }} + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Build if: ${{ steps.check.outputs.test == 'true' }} run: cargo build --release - name: Telegram Notify Channel if: ${{ steps.check.outputs.test == 'true' && (success() || failure()) }} - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} @@ -35,7 +46,7 @@ jobs: notify_fields: "actor,repository,workflow,branch,commit" - name: Telegram Notify Group if: ${{ steps.check.outputs.test == 'true' && (success() || failure()) }} - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} diff --git a/.forgejo/workflows/linux.yaml b/.forgejo/workflows/linux.yaml index c877387..7130add 100644 --- a/.forgejo/workflows/linux.yaml +++ b/.forgejo/workflows/linux.yaml @@ -13,6 +13,17 @@ jobs: with: submodules: recursive - run: mkdir release + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Release Linux x86 run: cargo zigbuild --release --target x86_64-unknown-linux-gnu - name: AppImage x86 @@ -25,6 +36,16 @@ jobs: run: sha256sum grim-${{ inputs.version }}-linux-x86_64.AppImage > grim-${{ inputs.version }}-linux-x86_64-appimage-sha256sum.txt - name: Release Linux ARM run: cargo zigbuild --release --target aarch64-unknown-linux-gnu + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - name: AppImage ARM run: | cp target/aarch64-unknown-linux-gnu/release/grim linux/Grim.AppDir/AppRun @@ -33,7 +54,7 @@ jobs: - name: Checksum AppImage ARM working-directory: release run: sha256sum grim-${{ inputs.version }}-linux-arm.AppImage > grim-${{ inputs.version }}-linux-arm-appimage-sha256sum.txt - - uses: actions/upload-artifact@v4 - with: - name: release_linux - path: release/* \ No newline at end of file + - name: Upload artifacts + run: | + tar -czf linux.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file linux.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/linux.tar.gz \ No newline at end of file diff --git a/.forgejo/workflows/macos.yaml b/.forgejo/workflows/macos.yaml index c5affa3..6bd1d88 100644 --- a/.forgejo/workflows/macos.yaml +++ b/.forgejo/workflows/macos.yaml @@ -13,10 +13,31 @@ jobs: with: submodules: recursive - run: mkdir release + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Release MacOS Universal run: | cargo zigbuild --release --target universal2-apple-darwin - mv target/universal2-apple-darwin/release/grim macos/Grim.app/Contents/MacOS + cp target/universal2-apple-darwin/release/grim macos/Grim.app/Contents/MacOS + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - name: Archive Universal working-directory: macos run: | @@ -25,7 +46,7 @@ jobs: - name: Checksum Release Universal working-directory: release run: sha256sum grim-${{ inputs.version }}-macos.zip > grim-${{ inputs.version }}-macos-sha256sum.txt - - uses: actions/upload-artifact@v4 - with: - name: release_macos - path: release/* \ No newline at end of file + - name: Upload artifacts + run: | + tar -czf macos.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file macos.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/macos.tar.gz \ No newline at end of file diff --git a/.forgejo/workflows/pr.yaml b/.forgejo/workflows/pr.yaml index 6b6b24e..a75c6c5 100644 --- a/.forgejo/workflows/pr.yaml +++ b/.forgejo/workflows/pr.yaml @@ -12,7 +12,7 @@ jobs: steps: - name: Telegram Notify Channel - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} @@ -20,7 +20,7 @@ jobs: status: ${{ job.status }} notify_fields: "actor,repository" - name: Telegram Notify Group - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index facf5a9..86cf09f 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -1,7 +1,10 @@ +name: Release build + on: push: branches: - master + - ci tags-ignore: - "*-dev*" @@ -35,6 +38,13 @@ jobs: echo "exists=${exists}" >> "$FORGEJO_OUTPUT" echo ${exists} mkdir release + - name: Check previous release + id: check_prev + run: | + git fetch --tags + [[ ${{ steps.check.outputs.exists == 'true' || forgejo.ref_type == 'branch' }} ]] && skip=1 || skip=0 + last_tag=$(git describe --abbrev=0 --tags $(git rev-list --tags --skip=${skip} --max-count=1)) + echo "last_tag=${last_tag}" >> "$FORGEJO_OUTPUT" - uses: ardocrat/forgejo-release@grim if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }} with: @@ -55,7 +65,12 @@ jobs: override: false prerelease: false release-dir: ./release - release-notes: "" + release-notes: "Full Changelog: [${{ steps.check_prev.outputs.last_tag }}...${{ steps.version.outputs.v }}](https://code.gri.mw/${{ forgejo.repository }}/compare/${{ steps.check_prev.outputs.last_tag }}...${{ steps.version.outputs.v }})" + - name: Delete dev release + if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }} + uses: actions/delete-release@v1 + with: + release_name: "${{ forgejo.ref_name }}-dev" android_libs: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} @@ -65,13 +80,23 @@ jobs: - uses: actions/checkout@v6 with: submodules: recursive + - uses: actions/cache@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Build libs run: | chmod +x scripts/android.sh && ./scripts/android.sh lib ${{ needs.version.outputs.v }} - - uses: actions/upload-artifact@v4 - with: - name: libs_android - path: android/app/src/main/jniLibs/* + - name: Upload artifacts + run: | + cd android/app/src/main + tar -czf jniLibs.tar.gz jniLibs + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file jniLibs.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/jniLibs.tar.gz android_release: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} @@ -81,33 +106,38 @@ jobs: - uses: actions/checkout@v6 with: submodules: recursive - - run: mkdir libs - - name: Download Libs Artifacts - uses: actions/download-artifact@v4 + - uses: actions/cache@v4 with: - path: libs - pattern: libs_* - merge-multiple: true - - name: Setup Java build + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Download artifacts + run: | + cd android/app/src/main + curl -o jniLibs.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/jniLibs.tar.gz + tar -xzf jniLibs.tar.gz + rm jniLibs.tar.gz + - name: Setup build run: | chmod +x android/gradlew echo "${{ secrets.ANDROID_KEYSTORE }}" > release.keystore.txt base64 -d release.keystore.txt > android/keystore echo "${{ secrets.ANDROID_KEYSTORE_PROPS }}" > release.keystore.props.txt base64 -d release.keystore.props.txt > android/keystore.properties - - name: Prepare build - run: | - mkdir release - chmod +x android/gradlew + mkdir ~/.gradle && touch ~/.gradle/gradle.properties + printf "mavenHost=${{ secrets.MAVEN_HOST }}\n" >> ~/.gradle/gradle.properties + printf "mavenUser=${{ secrets.MAVEN_USER }}\n" >> ~/.gradle/gradle.properties + printf "mavenPassword=${{ secrets.MAVEN_PASSWORD }}" >> ~/.gradle/gradle.properties - name: Release ARMv7+v8 APK working-directory: android run: | jni_path=app/src/main/jniLibs - mkdir ${jni_path} - mv ../libs/armeabi-v7a ${jni_path} - mv ../libs/arm64-v8a ${jni_path} - ./gradlew assembleSignedRelease - apk_path=app/build/outputs/apk/signedRelease/app-signedRelease.apk + mv ${jni_path}/x86_64 x86_64 + ./gradlew assembleCiSignedRelease + apk_path=app/build/outputs/apk/ci/signedRelease/app-ci-signedRelease.apk name=grim-${{ needs.version.outputs.v }}-android.apk mv ${apk_path} "${name}" - name: Checksum ARM APK @@ -122,9 +152,9 @@ jobs: ./gradlew clean jni_path=app/src/main/jniLibs rm -rf ${jni_path}/* - mv ../libs/x86_64 ${jni_path} - ./gradlew assembleSignedRelease - apk_path=app/build/outputs/apk/signedRelease/app-signedRelease.apk + mv x86_64 ${jni_path} + ./gradlew assembleCiSignedRelease + apk_path=app/build/outputs/apk/ci/signedRelease/app-ci-signedRelease.apk name=grim-${{ needs.version.outputs.v }}-android-x86_64.apk mv ${apk_path} "${name}" - name: Checksum x86_64 APK @@ -133,11 +163,12 @@ jobs: name=grim-${{ needs.version.outputs.v }}-android.apk checksum=grim-${{ needs.version.outputs.v }}-android-x86_64-sha256sum.txt sha256sum "${name}" > "${checksum}" - - run: mv android/grim* release - - uses: actions/upload-artifact@v4 - with: - name: release_android - path: release/* + - name: Upload artifacts + run: | + mkdir release + mv android/grim* release + tar -czf android.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file android.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/android.tar.gz linux: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} @@ -148,6 +179,9 @@ jobs: version: ${{ needs.version.outputs.v }} secrets: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + MAVEN_HOST: ${{ secrets.MAVEN_HOST }} + MAVEN_USER: ${{ secrets.MAVEN_USER }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} macos: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} @@ -158,6 +192,9 @@ jobs: version: ${{ needs.version.outputs.v }} secrets: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + MAVEN_HOST: ${{ secrets.MAVEN_HOST }} + MAVEN_USER: ${{ secrets.MAVEN_USER }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} windows: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} @@ -168,19 +205,29 @@ jobs: version: ${{ needs.version.outputs.v }} secrets: RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} + MAVEN_HOST: ${{ secrets.MAVEN_HOST }} + MAVEN_USER: ${{ secrets.MAVEN_USER }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} release: if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }} runs-on: ubuntu needs: [version, android_libs, android_release, linux, macos, windows] steps: - - run: mkdir release - name: Download All Artifacts - uses: actions/download-artifact@v4 - with: - path: release - pattern: release_* - merge-multiple: true + run: | + curl -o android.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/android.tar.gz + tar -xzf android.tar.gz + rm android.tar.gz + curl -o linux.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/linux.tar.gz + tar -xzf linux.tar.gz + rm linux.tar.gz + curl -o macos.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/macos.tar.gz + tar -xzf macos.tar.gz + rm macos.tar.gz + curl -o windows.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/windows.tar.gz + tar -xzf windows.tar.gz + rm windows.tar.gz - name: Upload release to Forgejo uses: ardocrat/forgejo-release@grim with: @@ -190,10 +237,10 @@ jobs: override: true prerelease: ${{ needs.version.outputs.pre }} release-dir: release - release-notes: "" + release-notes: "Full Changelog: [${{ needs.version.outputs.last_tag }}...${{ needs.version.outputs.v }}](https://code.gri.mw/${{ forgejo.repository }}/compare/${{ needs.version.outputs.last_tag }}...${{ needs.version.outputs.v }})" - name: Telegram Notify Channel if: always() - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} @@ -202,7 +249,7 @@ jobs: notify_fields: "actor,repository,workflow,branch,commit" - name: Telegram Notify Group if: always() - uses: actions/telegram-notifier@ardocrat + uses: actions/telegram-notifier@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} token: ${{ secrets.TELEGRAM_BOT_TOKEN }} @@ -210,13 +257,13 @@ jobs: status: ${{ job.status }} notify_fields: "actor,repository,workflow,branch,commit" - name: Upload files to Telegram - uses: ardocrat/tg-send-file-action@main + uses: actions/telegram-send-file@main with: api_url: ${{ secrets.TELEGRAM_API_URL }} chat_ids: | - ${{ secrets.TELEGRAM_GROUP_ID }} ${{ secrets.TELEGRAM_CHANNEL_ID }} - body: "🎁 Release ${{ needs.version.outputs.v }} is ready!" + ${{ secrets.TELEGRAM_GROUP_ID }} + body: '🎁 Release ${{ needs.version.outputs.v }} is ready!' token: ${{ secrets.TELEGRAM_BOT_TOKEN }} pin: true files: | diff --git a/.forgejo/workflows/windows.yaml b/.forgejo/workflows/windows.yaml index 1550579..9b619e8 100644 --- a/.forgejo/workflows/windows.yaml +++ b/.forgejo/workflows/windows.yaml @@ -13,15 +13,36 @@ jobs: with: submodules: recursive - run: mkdir release + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Release Windows x86 run: | cargo build --release --target x86_64-pc-windows-gnu zip grim-${{ inputs.version }}-win-x86_64.zip target/x86_64-pc-windows-gnu/release/grim.exe mv grim-${{ inputs.version }}-win-x86_64.zip release/ + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - name: Checksum Archive x86 working-directory: release run: sha256sum grim-${{ inputs.version }}-win-x86_64.zip > grim-${{ inputs.version }}-win-x86_64-sha256sum.txt - - uses: actions/upload-artifact@v4 - with: - name: release_windows - path: release/* \ No newline at end of file + - name: Upload artifacts + run: | + tar -czf windows.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file windows.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/windows.tar.gz \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 8f2f606..8dd3787 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -968,12 +968,6 @@ dependencies = [ "safemem", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.12.3" @@ -2049,15 +2043,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ct-logs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3686f5fa27dbc1d76c751300376e167c5a43387f44bb451fd1c24776e49113" -dependencies = [ - "sct 0.6.1", -] - [[package]] name = "ctr" version = "0.9.2" @@ -3825,14 +3810,14 @@ dependencies = [ "fs-mistrust", "futures 0.3.31", "gif", - "grin_api 5.4.0-alpha.0", - "grin_chain 5.4.0-alpha.0", + "grin_api", + "grin_chain", "grin_config", - "grin_core 5.4.0-alpha.0", - "grin_keychain 5.4.0-alpha.0", - "grin_p2p 5.4.0-alpha.0", + "grin_core", + "grin_keychain", + "grin_p2p", "grin_servers", - "grin_util 5.4.0-alpha.0", + "grin_util", "grin_wallet_api", "grin_wallet_controller", "grin_wallet_impls", @@ -3891,39 +3876,6 @@ dependencies = [ "winit", ] -[[package]] -name = "grin_api" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6443239e75a15c517ce24fe4dd3ef257898ae0224e6b7c993db28794e13ecf3e" -dependencies = [ - "bytes 0.5.6", - "easy-jsonrpc-mw", - "futures 0.3.31", - "grin_chain 5.3.3", - "grin_core 5.3.3", - "grin_p2p 5.3.3", - "grin_pool 5.3.3", - "grin_store 5.3.3", - "grin_util 5.3.3", - "http 0.2.12", - "hyper 0.13.10", - "hyper-rustls 0.20.0", - "hyper-timeout 0.3.1", - "lazy_static", - "log", - "regex", - "ring 0.16.20", - "rustls 0.17.0", - "serde", - "serde_derive", - "serde_json", - "thiserror 1.0.69", - "tokio 0.2.25", - "tokio-rustls 0.13.1", - "url", -] - [[package]] name = "grin_api" version = "5.4.0-alpha.0" @@ -3932,16 +3884,16 @@ dependencies = [ "bytes 1.10.1", "easy-jsonrpc-mw", "futures 0.3.31", - "grin_chain 5.4.0-alpha.0", - "grin_core 5.4.0-alpha.0", - "grin_p2p 5.4.0-alpha.0", - "grin_pool 5.4.0-alpha.0", - "grin_store 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_chain", + "grin_core", + "grin_p2p", + "grin_pool", + "grin_store", + "grin_util", "http 0.2.12", "hyper 0.14.32", "hyper-rustls 0.23.2", - "hyper-timeout 0.4.1", + "hyper-timeout", "lazy_static", "log", "regex", @@ -3957,30 +3909,6 @@ dependencies = [ "url", ] -[[package]] -name = "grin_chain" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdedcee9e20e0cc8dc1460b37b3951306c774a6aa5788e3f45addc56e60f7fbe" -dependencies = [ - "bit-vec 0.6.3", - "bitflags 1.3.2", - "byteorder", - "chrono", - "croaring", - "enum_primitive", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_store 5.3.3", - "grin_util 5.3.3", - "lazy_static", - "log", - "lru-cache", - "serde", - "serde_derive", - "thiserror 1.0.69", -] - [[package]] name = "grin_chain" version = "5.4.0-alpha.0" @@ -3991,10 +3919,10 @@ dependencies = [ "chrono", "croaring", "enum_primitive", - "grin_core 5.4.0-alpha.0", - "grin_keychain 5.4.0-alpha.0", - "grin_store 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_core", + "grin_keychain", + "grin_store", + "grin_util", "lazy_static", "log", "lru-cache", @@ -4008,43 +3936,16 @@ name = "grin_config" version = "5.4.0-alpha.0" dependencies = [ "dirs 2.0.2", - "grin_core 5.4.0-alpha.0", - "grin_p2p 5.4.0-alpha.0", + "grin_core", + "grin_p2p", "grin_servers", - "grin_util 5.4.0-alpha.0", + "grin_util", "rand 0.6.5", "serde", "serde_derive", "toml 0.5.11", ] -[[package]] -name = "grin_core" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4fbf242a2a23a6554dd4c430574d2563993cf5f44921f953635e8a177cf2506" -dependencies = [ - "blake2-rfc", - "byteorder", - "bytes 0.5.6", - "chrono", - "croaring", - "enum_primitive", - "grin_keychain 5.3.3", - "grin_util 5.3.3", - "lazy_static", - "log", - "lru-cache", - "num", - "num-bigint 0.2.6", - "rand 0.6.5", - "serde", - "serde_derive", - "siphasher 0.3.11", - "thiserror 1.0.69", - "zeroize", -] - [[package]] name = "grin_core" version = "5.4.0-alpha.0" @@ -4055,8 +3956,8 @@ dependencies = [ "chrono", "croaring", "enum_primitive", - "grin_keychain 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_keychain", + "grin_util", "lazy_static", "log", "lru-cache", @@ -4070,29 +3971,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "grin_keychain" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abeb1c22f48269a0bf463de589f8961d8bbb554def5e5e405710ead9a1b4c71a" -dependencies = [ - "blake2-rfc", - "byteorder", - "digest 0.9.0", - "grin_util 5.3.3", - "hmac 0.11.0", - "lazy_static", - "log", - "pbkdf2 0.8.0", - "rand 0.6.5", - "ripemd160", - "serde", - "serde_derive", - "serde_json", - "sha2 0.9.9", - "zeroize", -] - [[package]] name = "grin_keychain" version = "5.4.0-alpha.0" @@ -4100,7 +3978,7 @@ dependencies = [ "blake2-rfc", "byteorder", "digest 0.9.0", - "grin_util 5.4.0-alpha.0", + "grin_util", "hmac 0.11.0", "lazy_static", "log", @@ -4114,29 +3992,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "grin_p2p" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b0ecc5597244d698ec4e1ea2e7d04c3b209f496db16731a04f06af41572c54" -dependencies = [ - "bitflags 1.3.2", - "bytes 0.5.6", - "chrono", - "enum_primitive", - "grin_chain 5.3.3", - "grin_core 5.3.3", - "grin_store 5.3.3", - "grin_util 5.3.3", - "log", - "lru-cache", - "num", - "rand 0.6.5", - "serde", - "serde_derive", - "tempfile", -] - [[package]] name = "grin_p2p" version = "5.4.0-alpha.0" @@ -4145,10 +4000,10 @@ dependencies = [ "bytes 0.5.6", "chrono", "enum_primitive", - "grin_chain 5.4.0-alpha.0", - "grin_core 5.4.0-alpha.0", - "grin_store 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_chain", + "grin_core", + "grin_store", + "grin_util", "log", "lru-cache", "num", @@ -4158,33 +4013,15 @@ dependencies = [ "tempfile", ] -[[package]] -name = "grin_pool" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b758b202f034a03b894e732c716ddece8994fae5d8da1e074b1a9e07219f2b" -dependencies = [ - "blake2-rfc", - "chrono", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_util 5.3.3", - "log", - "rand 0.6.5", - "serde", - "serde_derive", - "thiserror 1.0.69", -] - [[package]] name = "grin_pool" version = "5.4.0-alpha.0" dependencies = [ "blake2-rfc", "chrono", - "grin_core 5.4.0-alpha.0", - "grin_keychain 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_core", + "grin_keychain", + "grin_util", "log", "rand 0.6.5", "serde", @@ -4215,14 +4052,14 @@ dependencies = [ "chrono", "fs2", "futures 0.3.31", - "grin_api 5.4.0-alpha.0", - "grin_chain 5.4.0-alpha.0", - "grin_core 5.4.0-alpha.0", - "grin_keychain 5.4.0-alpha.0", - "grin_p2p 5.4.0-alpha.0", - "grin_pool 5.4.0-alpha.0", - "grin_store 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_api", + "grin_chain", + "grin_core", + "grin_keychain", + "grin_p2p", + "grin_pool", + "grin_store", + "grin_util", "http 0.2.12", "hyper 0.14.32", "hyper-rustls 0.23.2", @@ -4238,34 +4075,14 @@ dependencies = [ "walkdir", ] -[[package]] -name = "grin_store" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708e53758263fa17dfd3fc46419ded59a84d07818e1ee7526b0d47ba268f1362" -dependencies = [ - "byteorder", - "croaring", - "grin_core 5.3.3", - "grin_util 5.3.3", - "libc", - "lmdb-zero", - "log", - "memmap", - "serde", - "serde_derive", - "tempfile", - "thiserror 1.0.69", -] - [[package]] name = "grin_store" version = "5.4.0-alpha.0" dependencies = [ "byteorder", "croaring", - "grin_core 5.4.0-alpha.0", - "grin_util 5.4.0-alpha.0", + "grin_core", + "grin_util", "libc", "lmdb-zero", "log", @@ -4276,29 +4093,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "grin_util" -version = "5.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1433d76d0e95c2ed20e1008e9891adfae64812d1bdc5ec71ed5499dcaca2986" -dependencies = [ - "anyhow", - "backtrace", - "base64 0.12.3", - "byteorder", - "grin_secp256k1zkp", - "lazy_static", - "log", - "log4rs", - "parking_lot 0.10.2", - "rand 0.6.5", - "serde", - "serde_derive", - "walkdir", - "zeroize", - "zip", -] - [[package]] name = "grin_util" version = "5.4.0-alpha.0" @@ -4328,9 +4122,9 @@ dependencies = [ "chrono", "easy-jsonrpc-mw", "ed25519-dalek 1.0.1", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_util 5.3.3", + "grin_core", + "grin_keychain", + "grin_util", "grin_wallet_config", "grin_wallet_impls", "grin_wallet_libwallet", @@ -4349,8 +4143,8 @@ name = "grin_wallet_config" version = "5.4.0-alpha.1" dependencies = [ "dirs 2.0.2", - "grin_core 5.3.3", - "grin_util 5.3.3", + "grin_core", + "grin_util", "grin_wallet_util", "rand 0.6.5", "serde", @@ -4365,16 +4159,16 @@ dependencies = [ "chrono", "easy-jsonrpc-mw", "futures 0.3.31", - "grin_api 5.3.3", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_util 5.3.3", + "grin_api", + "grin_core", + "grin_keychain", + "grin_util", "grin_wallet_api", "grin_wallet_config", "grin_wallet_impls", "grin_wallet_libwallet", "grin_wallet_util", - "hyper 0.13.10", + "hyper 0.14.32", "lazy_static", "log", "prettytable-rs", @@ -4402,12 +4196,12 @@ dependencies = [ "data-encoding", "ed25519-dalek 1.0.1", "futures 0.3.31", - "grin_api 5.3.3", - "grin_chain 5.3.3", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_store 5.3.3", - "grin_util 5.3.3", + "grin_api", + "grin_chain", + "grin_core", + "grin_keychain", + "grin_store", + "grin_util", "grin_wallet_config", "grin_wallet_libwallet", "grin_wallet_util", @@ -4443,10 +4237,10 @@ dependencies = [ "chrono", "curve25519-dalek 2.1.3", "ed25519-dalek 1.0.1", - "grin_core 5.3.3", - "grin_keychain 5.3.3", - "grin_store 5.3.3", - "grin_util 5.3.3", + "grin_core", + "grin_keychain", + "grin_store", + "grin_util", "grin_wallet_config", "grin_wallet_util", "hmac 0.12.1", @@ -4473,7 +4267,7 @@ version = "5.4.0-alpha.1" dependencies = [ "data-encoding", "ed25519-dalek 1.0.1", - "grin_util 5.3.3", + "grin_util", "rand 0.6.5", "serde", "serde_derive", @@ -4916,24 +4710,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-rustls" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac965ea399ec3a25ac7d13b8affd4b8f39325cca00858ddf5eb29b79e6b14b08" -dependencies = [ - "bytes 0.5.6", - "ct-logs", - "futures-util", - "hyper 0.13.10", - "log", - "rustls 0.17.0", - "rustls-native-certs 0.3.0", - "tokio 0.2.25", - "tokio-rustls 0.13.1", - "webpki 0.21.4", -] - [[package]] name = "hyper-rustls" version = "0.21.0" @@ -4960,7 +4736,7 @@ dependencies = [ "hyper 0.14.32", "log", "rustls 0.20.9", - "rustls-native-certs 0.6.3", + "rustls-native-certs", "tokio 1.48.0", "tokio-rustls 0.23.4", ] @@ -4981,18 +4757,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-timeout" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d1f9b0b8258e3ef8f45928021d3ef14096c2b93b99e4b8cfcabf1f58ec84b0a" -dependencies = [ - "bytes 0.5.6", - "hyper 0.13.10", - "tokio 0.2.25", - "tokio-io-timeout 0.4.0", -] - [[package]] name = "hyper-timeout" version = "0.4.1" @@ -5002,7 +4766,7 @@ dependencies = [ "hyper 0.14.32", "pin-project-lite 0.2.16", "tokio 1.48.0", - "tokio-io-timeout 1.2.1", + "tokio-io-timeout", ] [[package]] @@ -6270,8 +6034,8 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", - "security-framework-sys 2.15.0", + "security-framework", + "security-framework-sys", "tempfile", ] @@ -8709,19 +8473,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "rustls" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -dependencies = [ - "base64 0.11.0", - "log", - "ring 0.16.20", - "sct 0.6.1", - "webpki 0.21.4", -] - [[package]] name = "rustls" version = "0.18.1" @@ -8747,18 +8498,6 @@ dependencies = [ "webpki 0.22.4", ] -[[package]] -name = "rustls-native-certs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75ffeb84a6bd9d014713119542ce415db3a3e4748f0bfce1e1416cd224a23a5" -dependencies = [ - "openssl-probe", - "rustls 0.17.0", - "schannel", - "security-framework 0.4.4", -] - [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -8768,7 +8507,7 @@ dependencies = [ "openssl-probe", "rustls-pemfile", "schannel", - "security-framework 2.11.1", + "security-framework", ] [[package]] @@ -8978,19 +8717,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", - "libc", - "security-framework-sys 0.4.3", -] - [[package]] name = "security-framework" version = "2.11.1" @@ -9001,17 +8727,7 @@ dependencies = [ "core-foundation 0.9.4", "core-foundation-sys 0.8.7", "libc", - "security-framework-sys 2.15.0", -] - -[[package]] -name = "security-framework-sys" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", + "security-framework-sys", ] [[package]] @@ -10066,16 +9782,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "tokio-io-timeout" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9390a43272c8a6ac912ed1d1e2b6abeafd5047e05530a2fa304deee041a06215" -dependencies = [ - "bytes 0.5.6", - "tokio 0.2.25", -] - [[package]] name = "tokio-io-timeout" version = "1.2.1" @@ -10118,18 +9824,6 @@ dependencies = [ "tokio 1.48.0", ] -[[package]] -name = "tokio-rustls" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" -dependencies = [ - "futures-core", - "rustls 0.17.0", - "tokio 0.2.25", - "webpki 0.21.4", -] - [[package]] name = "tokio-rustls" version = "0.14.1" diff --git a/android/app/build.gradle b/android/app/build.gradle index 03f153c..b5cd939 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -56,6 +56,47 @@ android { targetCompatibility JavaVersion.VERSION_17 } namespace 'mw.gri.android' + + flavorDimensions "mode" + + productFlavors { + ci { + dimension "mode" + } + local { + dimension "mode" + } + } + + applicationVariants.all { variant -> + def flavor = variant.productFlavors[0].name + + if (flavor == "ci") { + repositories { + maven { + credentials { + username "$mavenUser" + password "$mavenPassword" + } + url "$mavenHost/repository/maven-central/" + allowInsecureProtocol = true + } + maven { + credentials { + username "$mavenUser" + password "$mavenPassword" + } + url "$mavenHost/repository/google-android-maven/" + allowInsecureProtocol = true + } + } + } else if (flavor == "local") { + repositories { + google() + mavenCentral() + } + } + } } dependencies { @@ -68,4 +109,4 @@ dependencies { implementation 'androidx.camera:camera-core:1.5.1' implementation 'androidx.camera:camera-camera2:1.5.1' implementation 'androidx.camera:camera-lifecycle:1.5.1' -} +} \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 0e712cc..36be38b 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon May 02 15:39:12 BST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://code.gri.mw/ardocrat/gradle/releases/download/v8.11.1/gradle-8.11.1-bin.zip +distributionUrl=https\://code.gri.mw/DEV/gradle/releases/download/v8.11.1/gradle-8.11.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/android/settings.gradle b/android/settings.gradle index 78d4714..20dc76c 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,16 +1,29 @@ pluginManagement { repositories { - gradlePluginPortal() - google() - mavenCentral() + maven { + credentials { + username "$mavenUser" + password "$mavenPassword" + } + url "$mavenHost/repository/gradle-plugin-portal/" + allowInsecureProtocol = true + } + maven { + credentials { + username "$mavenUser" + password "$mavenPassword" + } + url "$mavenHost/repository/google-maven/" + allowInsecureProtocol = true + } + maven { + credentials { + username "$mavenUser" + password "$mavenPassword" + } + url "$mavenHost/repository/maven-central/" + allowInsecureProtocol = true + } } } -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - } -} -//rootProject.name = "Rust Template" -include ':app' +include ':app' \ No newline at end of file diff --git a/scripts/android.sh b/scripts/android.sh index f723dd1..bf9c473 100755 --- a/scripts/android.sh +++ b/scripts/android.sh @@ -1,6 +1,6 @@ #!/bin/bash -usage="Usage: android.sh [type] [platform|version]\n - type: 'build' to run locally, 'lib' - .so for all platforms, 'release' - .apk for all platforms\n - platform, for 'build' type: 'v7', 'v8', 'x86'\n - version for 'lib' and 'release', example: '0.2.2'" +usage="Usage: android.sh [type] [platform|version] [flavor]\n - type: 'build' to run locally, 'lib' - .so for all platforms, 'release' - .apk for all platforms\n - platform, for 'build' type: 'v7', 'v8', 'x86'\n - version for 'lib' and 'release', example: '0.2.2'\n - flavor, for non-'lib' type: 'ci' for local maven, 'local' for external" case $1 in build|lib|release) ;; @@ -19,6 +19,16 @@ if [[ $1 == "build" ]]; then esac fi +if [[ $1 != "lib" ]]; then + case $3 in + ci|local) + ;; + *) + printf "$usage" + exit 1 + esac +fi + # Setup build directory BASEDIR=$(cd "$(dirname "$0")" && pwd) cd "${BASEDIR}" || exit 1 @@ -59,17 +69,17 @@ function build_apk() { ./gradlew clean # Build signed apk if keystore exists if [ ! -f keystore.properties ]; then - ./gradlew assembleDebug + ./gradlew assemble$3Debug if [ $? -ne 0 ]; then success=0 fi - apk_path=app/build/outputs/apk/debug/app-debug.apk + apk_path=app/build/outputs/apk/$3/debug/app-$3-debug.apk else - ./gradlew assembleSignedRelease + ./gradlew assemble$3SignedRelease if [ $? -ne 0 ]; then success=0 fi - apk_path=app/build/outputs/apk/signedRelease/app-signedRelease.apk + apk_path=app/build/outputs/apk/$3/signedRelease/app-$3-signedRelease.apk fi if [[ $1 == "" ]] && [ $success -eq 1 ]; then @@ -118,10 +128,10 @@ else rm -rf target/armv7-linux-androideabi build_lib "v7" [ $success -eq 1 ] && build_lib "v8" - [ $success -eq 1 ] && build_apk "arm" "$2" + [ $success -eq 1 ] && build_apk "arm" "$2" "$3" rm -rf android/app/src/main/jniLibs/* [ $success -eq 1 ] && build_lib "x86" - [ $success -eq 1 ] && build_apk "x86_64" "$2" + [ $success -eq 1 ] && build_apk "x86_64" "$2" "$3" [ $success -eq 1 ] && exit 0 fi