-
Notifications
You must be signed in to change notification settings - Fork 387
chore: Merge in contents of build-nargo repository
#2211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
3c8a2bb
chore: verbatim copy of `build-nargo`
TomAFrench 60d3597
chore: switch to yarn
TomAFrench 97f0889
chore: remove unnecessary noir directory
TomAFrench 23c1dbd
chore: disable publishing and nightly schedule
TomAFrench 439ced2
chore: run release tests from correct directory
TomAFrench f2c9b89
chore: remove double checkout
TomAFrench 15e9f93
chore: checkout noir repo into `./noir` repository
TomAFrench 3faff53
chore: update path to cross config
TomAFrench a280b91
chore: re-enable publishing nightly releases
TomAFrench a2a55eb
chore: read GITHUB_REF properly
TomAFrench b9dab0a
chore: set up triggers for publishing
TomAFrench 149a8c1
chore: add kev to assignees
TomAFrench 410b0b0
chore: use actual workflow path
TomAFrench dccf5f6
chore: reenable reporting of nightly failures
TomAFrench cece5d3
chore: remove commented toml
TomAFrench 33d55c7
chore: run workflow on merge queue
TomAFrench c656cda
chore: remove `./noir` subdirectory
TomAFrench 7c6c84a
chore: run build to check that it's working
TomAFrench 3f3ea92
chore: replace `NOIR_REPO_TOKEN` with `GITHUB_TOKEN`
TomAFrench 1b0a067
chore: move ignored directory to repo root
TomAFrench 92d7d00
chore: revert to using `workflow_dispatch`
TomAFrench 4134588
chore: remove push trigger
TomAFrench 1b4f0b1
chore: add `permissions` section
TomAFrench 0d543e9
chore: remove auth token from cachix
TomAFrench 543f77a
temp
TomAFrench 68186fc
chore: list dual license in `package.json`s
TomAFrench 66008ae
chore: remove todo
TomAFrench e458fd1
chore: remove `push:` trigger
TomAFrench File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 | ||
|
TomAFrench marked this conversation as resolved.
|
||
|
|
||
| jobs: | ||
| build-barretenberg: | ||
|
TomAFrench marked this conversation as resolved.
|
||
| 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/ | ||
|
TomAFrench marked this conversation as resolved.
|
||
| 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 | ||
|
kevaundray marked this conversation as resolved.
|
||
|
|
||
| - 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 | ||
|
TomAFrench marked this conversation as resolved.
|
||
| 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 hidden or 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 hidden or 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 hidden or 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
|
TomAFrench marked this conversation as resolved.
|
This file contains hidden or 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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.