secp-bouncy/build.gradle: update to Bouncy Castle 1.83 #44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: [push, pull_request, workflow_dispatch] | |
| jobs: | |
| validate_gradle_wrapper: | |
| name: "Validate Gradle Wrapper" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: gradle/actions/wrapper-validation@v4 | |
| build_gradle: | |
| needs: validate_gradle_wrapper | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15] | |
| distribution: ['temurin'] | |
| fail-fast: false | |
| name: ${{ matrix.os }} JDK 25 (via Gradle Java toolchains) | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| # When installing multiple JDKs, the last JDK installed is the default and will be used to run Gradle itself | |
| java-version: | | |
| 25 | |
| cache: 'gradle' | |
| - name: Install secp256k1 with APT | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt install -y libsecp256k1-dev | |
| echo "LD_LIBRARY_PATH=/usr/lib/$(uname -m)-linux-gnu" >> $GITHUB_ENV | |
| - name: Install secp256k1 with Homebrew | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew install secp256k1 | |
| echo "DYLD_LIBRARY_PATH=$(brew --prefix secp256k1)/lib" >> $GITHUB_ENV | |
| echo "JAVA_TOOL_OPTIONS=-Djava.library.path=$(brew --prefix secp256k1)/lib" >> $GITHUB_ENV | |
| - name: Build with Gradle | |
| run: ./gradlew build | |
| - name: Run Java & Kotlin Examples | |
| run: ./gradlew run runEcdsa | |
| - name: Print Sha256Sums (Linux) | |
| if: runner.os == 'Linux' | |
| run: sha256sum secp-api/build/libs/* secp-bouncy/build/libs/* secp-ffm/build/libs/* secp-graalvm/build/libs/* | |
| - name: Print Sha256Sums (macOS) | |
| if: runner.os == 'macOS' | |
| run: shasum -a 256 secp-api/build/libs/* secp-bouncy/build/libs/* secp-ffm/build/libs/* secp-graalvm/build/libs/* | |
| build_graalvm_gradle: | |
| needs: validate_gradle_wrapper | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15] | |
| java: [ '25' ] | |
| distribution: [ 'graalvm-community' ] | |
| fail-fast: false | |
| name: ${{ matrix.os }} ${{ matrix.java }} (via setup-graalvm) | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up GraalVM | |
| uses: graalvm/setup-graalvm@v1 | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version: ${{ matrix.java }} | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Install secp256k1 with APT | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt install -y libsecp256k1-dev | |
| echo "LD_LIBRARY_PATH=/usr/lib/$(uname -m)-linux-gnu" >> $GITHUB_ENV | |
| - name: Install secp256k1 with Homebrew | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew install secp256k1 | |
| echo "DYLD_LIBRARY_PATH=$(brew --prefix secp256k1)/lib" >> $GITHUB_ENV | |
| echo "JAVA_TOOL_OPTIONS=-Djava.library.path=$(brew --prefix secp256k1)/lib" >> $GITHUB_ENV | |
| - name: Build (JIT) with Gradle | |
| run: ./gradlew build | |
| - name: Run Java & Kotlin Examples | |
| run: ./gradlew build run runEcdsa | |
| - name: Build Native Image with Gradle | |
| run: ./gradlew build secp-examples-java:nativeCompile | |
| - name: Run Schnorr Native Example | |
| run: ./secp-examples-java/build/schnorr-example | |
| javadoc_artifact: | |
| needs: build_gradle | |
| runs-on: ubuntu-24.04 | |
| name: Publish Aggregated Javadoc artifact | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 25 | |
| cache: 'gradle' | |
| - name: Install secp256k1 with APT | |
| run: | | |
| sudo apt install -y libsecp256k1-dev | |
| echo "LD_LIBRARY_PATH=/usr/lib/$(uname -m)-linux-gnu" >> $GITHUB_ENV | |
| - name: Build Aggregate Modular Javadoc with Gradle | |
| run: ./gradlew javadoc | |
| - name: Upload Javadoc as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: secp256k1-jdk-javadoc | |
| path: build/docs/javadoc/ | |
| build_nix: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15] | |
| fail-fast: false | |
| name: ${{ matrix.os }} Nix | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v5 | |
| - name: Install Nix | |
| uses: cachix/install-nix-action@v31 | |
| with: | |
| github_access_token: ${{ secrets.GITHUB_TOKEN }} | |
| # Pre-build the devShell to allow multiple devShell steps and to have a clear point of failure | |
| # should the shell fail to build | |
| - name: Pre-build devShell | |
| run: nix build --no-link .#devShells.$(nix eval --impure --raw --expr 'builtins.currentSystem').default | |
| - name: Build in Nix development shell | |
| shell: 'nix develop -c bash -e {0}' # Use the Pre-built devShell | |
| run: gradle build run runEcdsa secp-examples-java:nativeCompile | |
| - name: Run Schnorr Native Example | |
| shell: 'nix develop -c bash -e {0}' # Use the Pre-built devShell | |
| run: ./secp-examples-java/build/schnorr-example | |
| - name: Print Sha256Sums (Linux) | |
| if: runner.os == 'Linux' | |
| run: sha256sum secp-api/build/libs/* secp-bouncy/build/libs/* secp-ffm/build/libs/* secp-graalvm/build/libs/* | |
| - name: Print Sha256Sums (macOS) | |
| if: runner.os == 'macOS' | |
| run: shasum -a 256 secp-api/build/libs/* secp-bouncy/build/libs/* secp-ffm/build/libs/* secp-graalvm/build/libs/* | |
| build_all_green: | |
| runs-on: ubuntu-24.04 | |
| needs: [validate_gradle_wrapper, build_gradle, build_graalvm_gradle, javadoc_artifact, build_nix] | |
| steps: | |
| - run: echo "All upstream jobs passed" |