-
Notifications
You must be signed in to change notification settings - Fork 219
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into assert-eq-builtin
* master: 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) chore: Merge in contents of `build-nargo` repository (#2211) fix(lsp): Improve dependency resolution in context of `Nargo.toml` (#2226) chore: Remove unnecessary duplication in how we test Noir compiler (#2248) fix: properly capture lvalues in closure environments (#2120) (#2257) fix: Optimize contracts built by `nargo info` (#2259) chore: impl Display for DebugType (#2258) chore: update `noir_wasm` build process to match `acvm_js` (#2067) feat: Implement traits - parser support #2094 (#2230) chore: Refactor DefCollector duplicate errors (#2231) chore: Address clippy warnings (#2246) feat: Support `contract` package type in `nargo info` command (#2249)
- Loading branch information
Showing
58 changed files
with
1,384 additions
and
817 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/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: ${{ 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/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: ${{ 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/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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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.