Add function to calculate the required size of the buffer for public … #45
This file contains 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: | |
release: | |
types: [published] | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
build-linux: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: install requirements | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: build-essential cmake m4 nasm | |
version: 1.0 | |
- name: Cache gmp build | |
uses: actions/cache@v3 | |
with: | |
path: | | |
depends/gmp | |
depends/gmp-6.2.1.tar.xz | |
key: ${{ runner.os }}-gmp-${{ hashFiles('build_gmp.sh') }}-2 | |
- name: build gmp for Android arm64 | |
run: if [[ ! -d "depends/gmp/package_android_arm64" ]]; then ./build_gmp.sh android; fi | |
- name: build gmp for Android x86_64 | |
run: if [[ ! -d "depends/gmp/package_android_x86_64" ]]; then ./build_gmp.sh android_x86_64; fi | |
- name: build gmp for Linux x86_64 | |
run: if [[ ! -d "depends/gmp/package" ]]; then ./build_gmp.sh host; fi | |
- name: Build prover Android ARM64 | |
run: | | |
mkdir -p build_prover_android && cd build_prover_android | |
cmake .. -DTARGET_PLATFORM=ANDROID -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_android | |
make -j4 && make install | |
- name: Build prover Android x86_64 | |
run: | | |
mkdir -p build_prover_android_x86_64 && cd build_prover_android_x86_64 | |
cmake .. -DTARGET_PLATFORM=ANDROID_x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_android_x86_64 | |
make -j4 && make install | |
- name: Build prover Linux | |
run: | | |
mkdir -p build_prover && cd build_prover | |
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package | |
make -j4 && make install | |
- name: test prover for linux | |
run: | | |
set -x | |
set -e | |
npm install -g snarkjs | |
package/bin/prover testdata/circuit_final.zkey testdata/witness.wtns proof.json public.json | |
snarkjs groth16 verify testdata/verification_key.json public.json proof.json | |
- name: upload Linux amd64 dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-linux-amd64 | |
path: | | |
package | |
if-no-files-found: error | |
- name: upload Android dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-Android | |
path: | | |
package_android | |
if-no-files-found: error | |
- name: upload Android x86_64 dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-Android-x86_64 | |
path: | | |
package_android_x86_64 | |
if-no-files-found: error | |
- name: upload Android ARM64 release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-android-arm64-${{ github.ref_name }} | |
cp -r package_android/* rapidsnark-android-arm64-${{ github.ref_name }}/ | |
zip -r rapidsnark-android-arm64-${{ github.ref_name }}.zip rapidsnark-android-arm64-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-android-arm64-${{ github.ref_name }}.zip | |
- name: upload Android x86_64 release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-android-x86_64-${{ github.ref_name }} | |
cp -r package_android_x86_64/* rapidsnark-android-x86_64-${{ github.ref_name }}/ | |
zip -r rapidsnark-android-x86_64-${{ github.ref_name }}.zip rapidsnark-android-x86_64-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-android-x86_64-${{ github.ref_name }}.zip | |
- name: upload Linux x86_64 release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-linux-x86_64-${{ github.ref_name }} | |
cp -r package/* rapidsnark-linux-x86_64-${{ github.ref_name }}/ | |
zip -r rapidsnark-linux-x86_64-${{ github.ref_name }}.zip rapidsnark-linux-x86_64-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-linux-x86_64-${{ github.ref_name }}.zip | |
build-apple-arm64: | |
runs-on: macos-13-xlarge | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Cache gmp build | |
uses: actions/cache@v3 | |
with: | |
path: | | |
depends/gmp | |
depends/gmp-6.2.1.tar.xz | |
key: ${{ runner.os }}-gmp-arm64-${{ hashFiles('build_gmp.sh') }} | |
- name: build | |
run: | | |
if [[ ! -d "depends/gmp/package_ios_arm64" ]]; then ./build_gmp.sh ios; fi | |
if [[ ! -d "depends/gmp/package_iphone_simulator" ]]; then ./build_gmp.sh ios_simulator; fi | |
if [[ ! -d "depends/gmp/package_macos_arm64" ]]; then ./build_gmp.sh macos_arm64; fi | |
mkdir -p build_prover_ios && cd build_prover_ios | |
cmake .. -GXcode -DTARGET_PLATFORM=IOS -DCMAKE_INSTALL_PREFIX=../package_ios | |
xcodebuild -destination 'generic/platform=iOS' -scheme rapidsnarkStatic -project rapidsnark.xcodeproj -configuration Release | |
cp ../depends/gmp/package_ios_arm64/lib/libgmp.a src/Release-iphoneos | |
cd ../ | |
mkdir -p build_prover_ios_simulator && cd build_prover_ios_simulator | |
cmake .. -GXcode -DTARGET_PLATFORM=IOS -DCMAKE_INSTALL_PREFIX=../package_ios_simulator -DUSE_ASM=NO | |
xcodebuild -destination 'generic/platform=iOS Simulator' -scheme rapidsnarkStatic -project rapidsnark.xcodeproj | |
cp ../depends/gmp/package_iphone_simulator/lib/libgmp.a src/Debug-iphonesimulator | |
cd ../ | |
mkdir -p build_prover_macos_arm64 && cd build_prover_macos_arm64 | |
cmake .. -DTARGET_PLATFORM=macos_arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_macos_arm64 | |
make -j4 && make install | |
- name: test prover | |
run: | | |
set -x | |
set -e | |
npm install -g snarkjs | |
package_macos_arm64/bin/prover testdata/circuit_final.zkey testdata/witness.wtns proof.json public.json | |
snarkjs groth16 verify testdata/verification_key.json public.json proof.json | |
- name: upload macOS arm64 dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-macOS-arm64 | |
path: | | |
package_macos_arm64 | |
if-no-files-found: error | |
- name: upload iOS dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-iOS | |
path: | | |
build_prover_ios/src/Release-iphoneos | |
if-no-files-found: error | |
- name: upload iOS Simulator dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-iOS-Simulator | |
path: | | |
build_prover_ios_simulator/src/Debug-iphonesimulator | |
if-no-files-found: error | |
- name: upload iOS release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-iOS-${{ github.ref_name }} | |
cp -r build_prover_ios/src/Release-iphoneos/* rapidsnark-iOS-${{ github.ref_name }}/ | |
zip -r rapidsnark-iOS-${{ github.ref_name }}.zip rapidsnark-iOS-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-iOS-${{ github.ref_name }}.zip | |
- name: upload iOS Simulator release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-iOS-Simulator-${{ github.ref_name }} | |
cp -r build_prover_ios_simulator/src/Debug-iphonesimulator/* rapidsnark-iOS-Simulator-${{ github.ref_name }}/ | |
zip -r rapidsnark-iOS-Simulator-${{ github.ref_name }}.zip rapidsnark-iOS-Simulator-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-iOS-Simulator-${{ github.ref_name }}.zip | |
- name: upload macOS arm64 release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-macOS-arm64-${{ github.ref_name }} | |
cp -r package_macos_arm64/* rapidsnark-macOS-arm64-${{ github.ref_name }}/ | |
zip -r rapidsnark-macOS-arm64-${{ github.ref_name }}.zip rapidsnark-macOS-arm64-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-macOS-arm64-${{ github.ref_name }}.zip | |
build-apple-x86_64: | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- name: Cache gmp build | |
uses: actions/cache@v3 | |
with: | |
path: | | |
depends/gmp | |
depends/gmp-6.2.1.tar.xz | |
key: ${{ runner.os }}-gmp-x86_64-${{ hashFiles('build_gmp.sh') }}-2 | |
- name: install dependencies | |
run: | | |
brew install nasm | |
- name: build | |
run: | | |
if [[ ! -d "depends/gmp/package_macos_x86_64" ]]; then ./build_gmp.sh macos_x86_64; fi | |
mkdir -p build_prover_macos_x86_64 && cd build_prover_macos_x86_64 | |
cmake .. -DTARGET_PLATFORM=macos_x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_macos_x86_64 | |
make -j4 && make install | |
- name: test prover | |
run: | | |
set -x | |
set -e | |
npm install -g snarkjs | |
package_macos_x86_64/bin/prover testdata/circuit_final.zkey testdata/witness.wtns proof.json public.json | |
snarkjs groth16 verify testdata/verification_key.json public.json proof.json | |
- name: upload macOS x86_64 dev artifacts | |
if: github.event_name != 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rapidsnark-macOS-x86_64 | |
path: | | |
package_macos_x86_64 | |
if-no-files-found: error | |
- name: upload macOS x86_64 release artifacts | |
if: github.event_name == 'release' | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -x | |
mkdir -p rapidsnark-macOS-x86_64-${{ github.ref_name }} | |
cp -r package_macos_x86_64/* rapidsnark-macOS-x86_64-${{ github.ref_name }}/ | |
zip -r rapidsnark-macOS-x86_64-${{ github.ref_name }}.zip rapidsnark-macOS-x86_64-${{ github.ref_name }} | |
gh release upload ${{ github.event.release.tag_name }} rapidsnark-macOS-x86_64-${{ github.ref_name }}.zip |