Skip to content

nix flake update

nix flake update #40

Workflow file for this run

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"