-
Notifications
You must be signed in to change notification settings - Fork 204
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* master: (23 commits) chore: Reuse workspace target directory in wasm build script (#2312) feat(nargo): Add `--workspace` flag to run commands in every package (#2313) chore(frontend): Replace `ModuleOrigin` with `Location` on `ModuleData` (#2308) fix: Fix 3 parser test cases in parsing (#2284) fix: Require package names to be non-empty (#2293) fix(nargo)!: Remove `-p` short flag from the `--program-dir` flag (#2300) feat: optionally output a debug artifact on compile (#2260) chore: `nargo info` now prints information as a prettified table (#2282) fix(lsp): Pass `--program-dir` to test command from codelens (#2292) fix(nargo): Allow `--program-dir` flag anywhere in a command (#2290) feat: Execute brillig opcodes with constant inputs at compile-time (#2190) feat: Add basic benchmarking (#2213) feat: Include struct names in ABIs (#2266) feat(nargo): Add `--exact` flag to `nargo test` (#2272) fix: Fix assignment when both `mut` and `&mut` are used (#2264) feat: Add `assert_constant` (#2242) feat(nargo): Add support for contracts in `nargo check` (#2267) chore(ci): Name wasm job more clearly (#2269) chore(ci): Create cache key with consideration to target (#2273) chore(ci): Run publish workflow against PRs (#2268) ...
- Loading branch information
Showing
142 changed files
with
2,397 additions
and
916 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,298 @@ | ||
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: | ||
pull_request: | ||
|
||
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: ${{ matrix.target }}-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/[email protected] | ||
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: ${{ matrix.target }}-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/[email protected] | ||
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: ${{ matrix.target }}-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/[email protected] | ||
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
Oops, something went wrong.