-
Notifications
You must be signed in to change notification settings - Fork 200
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Merge in contents of
build-nargo
repository (#2211)
* chore: verbatim copy of `build-nargo` * chore: switch to yarn * chore: remove unnecessary noir directory * chore: disable publishing and nightly schedule * chore: run release tests from correct directory * chore: remove double checkout * chore: checkout noir repo into `./noir` repository * chore: update path to cross config * chore: re-enable publishing nightly releases * chore: read GITHUB_REF properly * chore: set up triggers for publishing * chore: add kev to assignees * chore: use actual workflow path * chore: reenable reporting of nightly failures * chore: remove commented toml * chore: run workflow on merge queue * chore: remove `./noir` subdirectory * chore: run build to check that it's working * chore: replace `NOIR_REPO_TOKEN` with `GITHUB_TOKEN` * chore: move ignored directory to repo root * chore: revert to using `workflow_dispatch` * chore: remove push trigger * chore: add `permissions` section * chore: remove auth token from cachix * temp * chore: list dual license in `package.json`s * chore: remove todo * chore: remove `push:` trigger
- Loading branch information
1 parent
8846bf2
commit d04f7d5
Showing
11 changed files
with
822 additions
and
4 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
[build.env] | ||
passthrough = [ | ||
"HOME", | ||
"RUST_BACKTRACE", | ||
"BARRETENBERG_BIN_DIR" | ||
] | ||
volumes = [ | ||
"HOME", | ||
] |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,297 @@ | ||
name: Publish Nargo | ||
|
||
on: | ||
workflow_dispatch: | ||
# Allow pushing a manual nightly release | ||
inputs: | ||
tag: | ||
description: The tag to build Nargo from (leave empty to build a nightly release from master) | ||
required: false | ||
publish: | ||
description: Whether to publish the build artifacts | ||
type: boolean | ||
default: false | ||
schedule: | ||
# Run a nightly release at 2 AM UTC | ||
- cron: "0 2 * * *" | ||
merge_group: | ||
|
||
permissions: | ||
# Necessary to upload new release artifacts | ||
contents: write | ||
|
||
jobs: | ||
build-barretenberg: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.tag || env.GITHUB_REF }} | ||
|
||
- name: Collect locked barretenberg rev | ||
run: | | ||
echo "BB_REV=$(jq -r .nodes.barretenberg.locked.rev ./flake.lock)" >> $GITHUB_ENV | ||
- uses: cachix/install-nix-action@v20 | ||
with: | ||
nix_path: nixpkgs=channel:nixos-22.11 | ||
github_access_token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- uses: cachix/cachix-action@v12 | ||
with: | ||
name: barretenberg | ||
|
||
# Upload does not work with symlinks, using this workaround: | ||
# https://github.com/actions/upload-artifact/issues/92#issuecomment-1080347032 | ||
- name: Build barretenberg as libbarretenberg-wasm32 | ||
run: | | ||
nix build "github:AztecProtocol/barretenberg/${{ env.BB_REV }}#wasm32" | ||
echo "ARTIFACT_UPLOAD_PATH=$(readlink -f result)" >> $GITHUB_ENV | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: libbarretenberg-wasm32 | ||
path: ${{ env.ARTIFACT_UPLOAD_PATH }} | ||
retention-days: 3 | ||
|
||
build-apple-darwin: | ||
needs: [build-barretenberg] | ||
runs-on: macos-latest | ||
env: | ||
CROSS_CONFIG: ${{ github.workspace }}/.github/Cross.toml | ||
strategy: | ||
matrix: | ||
target: [x86_64-apple-darwin, aarch64-apple-darwin] | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.tag || env.GITHUB_REF }} | ||
|
||
- name: Setup for Apple Silicon | ||
if: matrix.target == 'aarch64-apple-darwin' | ||
run: | | ||
sudo xcode-select -s /Applications/Xcode_13.2.1.app/Contents/Developer/ | ||
echo "SDKROOT=$(xcrun -sdk macosx$(sw_vers -productVersion) --show-sdk-path)" >> $GITHUB_ENV | ||
echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx$(sw_vers -productVersion) --show-sdk-platform-version)" >> $GITHUB_ENV | ||
- uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/bin/ | ||
~/.cargo/registry/index/ | ||
~/.cargo/registry/cache/ | ||
~/.cargo/git/db/ | ||
target/ | ||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Download artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: libbarretenberg-wasm32 | ||
path: ${{ github.workspace }}/libbarretenberg-wasm32 | ||
|
||
- name: Setup toolchain | ||
uses: dtolnay/rust-toolchain@1.66.0 | ||
with: | ||
targets: ${{ matrix.target }} | ||
|
||
- name: Build environment and Compile | ||
env: | ||
BARRETENBERG_BIN_DIR: ${{ github.workspace }}/libbarretenberg-wasm32/bin | ||
run: | | ||
cargo build --package nargo_cli --release --target ${{ matrix.target }} --no-default-features --features plonk_bn254_wasm | ||
- name: Package artifacts | ||
run: | | ||
mkdir dist | ||
cp ./target/${{ matrix.target }}/release/nargo ./dist/nargo | ||
7z a -ttar -so -an ./dist/* | 7z a -si ./nargo-${{ matrix.target }}.tar.gz | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: nargo-${{ matrix.target }} | ||
path: ./dist/* | ||
retention-days: 3 | ||
|
||
- name: Test built artifact | ||
if: matrix.target == 'x86_64-apple-darwin' | ||
run: | | ||
cp ./target/${{ matrix.target }}/release/nargo ~/.cargo/bin/ | ||
cd release-tests | ||
yarn install | ||
yarn test | ||
- name: Upload binaries to release tag | ||
uses: svenstaro/upload-release-action@v2 | ||
if: ${{ inputs.publish || github.event_name == 'schedule' }} | ||
with: | ||
repo_name: noir-lang/noir | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: ./nargo-${{ matrix.target }}.tar.gz | ||
asset_name: nargo-${{ matrix.target }}.tar.gz | ||
overwrite: true | ||
tag: ${{ inputs.tag || 'nightly' }} # This will fail if `inputs.tag` is not a tag (e.g. testing a branch) | ||
|
||
build-linux: | ||
needs: [build-barretenberg] | ||
runs-on: ubuntu-22.04 | ||
env: | ||
CROSS_CONFIG: ${{ github.workspace }}/.github/Cross.toml | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
target: | ||
[ | ||
x86_64-unknown-linux-gnu, | ||
x86_64-unknown-linux-musl, | ||
aarch64-unknown-linux-gnu, | ||
aarch64-unknown-linux-musl, | ||
] | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.tag || env.GITHUB_REF }} | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/bin/ | ||
~/.cargo/registry/index/ | ||
~/.cargo/registry/cache/ | ||
~/.cargo/git/db/ | ||
target/ | ||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Download artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: libbarretenberg-wasm32 | ||
path: ${{ github.workspace }}/libbarretenberg-wasm32 | ||
|
||
- name: Setup toolchain | ||
uses: dtolnay/rust-toolchain@1.66.0 | ||
with: | ||
targets: ${{ matrix.target }} | ||
|
||
- name: Build Nargo | ||
env: | ||
BARRETENBERG_BIN_DIR: ${{ github.workspace }}/libbarretenberg-wasm32/bin | ||
run: | | ||
cargo install cross --force --git https://github.com/cross-rs/cross | ||
cross build --package nargo_cli --release --target=${{ matrix.target }} --no-default-features --features plonk_bn254_wasm | ||
- name: Package artifacts | ||
run: | | ||
mkdir dist | ||
cp ./target/${{ matrix.target }}/release/nargo ./dist/nargo | ||
7z a -ttar -so -an ./dist/* | 7z a -si ./nargo-${{ matrix.target }}.tar.gz | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: nargo-${{ matrix.target }} | ||
path: ./dist/* | ||
retention-days: 3 | ||
|
||
- name: Test built artifact | ||
if: startsWith(matrix.target, 'x86_64-unknown-linux') | ||
run: | | ||
cp ./target/${{ matrix.target }}/release/nargo ~/.cargo/bin/ | ||
cd release-tests | ||
yarn install | ||
yarn test | ||
- name: Upload binaries to release tag | ||
uses: svenstaro/upload-release-action@v2 | ||
if: ${{ inputs.publish || github.event_name == 'schedule' }} | ||
with: | ||
repo_name: noir-lang/noir | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: ./nargo-${{ matrix.target }}.tar.gz | ||
asset_name: nargo-${{ matrix.target }}.tar.gz | ||
overwrite: true | ||
tag: ${{ inputs.tag || 'nightly' }} # This will fail if `inputs.tag` is not a tag (e.g. testing a branch) | ||
|
||
build-windows: | ||
needs: [build-barretenberg] | ||
runs-on: windows-2022 | ||
env: | ||
CROSS_CONFIG: ${{ github.workspace }}/.github/Cross.toml | ||
strategy: | ||
matrix: | ||
target: [x86_64-pc-windows-msvc] | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ inputs.tag || env.GITHUB_REF }} | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/bin/ | ||
~/.cargo/registry/index/ | ||
~/.cargo/registry/cache/ | ||
~/.cargo/git/db/ | ||
target/ | ||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Download artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: libbarretenberg-wasm32 | ||
path: ${{ github.workspace }}/libbarretenberg-wasm32 | ||
|
||
- name: Setup toolchain | ||
uses: dtolnay/rust-toolchain@1.66.0 | ||
with: | ||
targets: ${{ matrix.target }} | ||
|
||
- name: Build environment and Compile | ||
env: | ||
BARRETENBERG_BIN_DIR: ${{ github.workspace }}/libbarretenberg-wasm32/bin | ||
run: | | ||
cargo build --package nargo_cli --release --target ${{ matrix.target }} --no-default-features --features plonk_bn254_wasm | ||
- name: Package artifacts | ||
run: | | ||
mkdir dist | ||
cp ./target/${{ matrix.target }}/release/nargo.exe ./dist/nargo.exe | ||
7z a -tzip nargo-${{ matrix.target }}.zip ./dist/* | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: nargo-${{ matrix.target }} | ||
path: ./dist/* | ||
retention-days: 3 | ||
|
||
- name: Test built artifact | ||
shell: powershell | ||
run: | | ||
cp ./target/${{ matrix.target }}/release/nargo.exe ~/.cargo/bin/ | ||
cd release-tests | ||
yarn install | ||
yarn test | ||
- name: Upload binaries to release tag | ||
uses: svenstaro/upload-release-action@v2 | ||
if: ${{ inputs.publish || github.event_name == 'schedule' }} | ||
with: | ||
repo_name: noir-lang/noir | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: ./nargo-${{ matrix.target }}.zip | ||
asset_name: nargo-${{ matrix.target }}.zip | ||
overwrite: true | ||
tag: ${{ inputs.tag || 'nightly' }} # This will fail if `inputs.tag` is not a tag (e.g. testing a branch) |
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"name": "@noir-lang/release-tests", | ||
"version": "0.0.0", | ||
"main": "index.js", | ||
"license": "(MIT OR Apache-2.0)", | ||
"private": true, | ||
"type": "module", | ||
"scripts": { | ||
"test": "node ./node_modules/uvu/bin.js test" | ||
}, | ||
"devDependencies": { | ||
"uvu": "0.5.6", | ||
"zx": "7.1.1" | ||
} | ||
} |
Oops, something went wrong.