Skip to content
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

CI: build circuits & assignment tables on Linux/x86_64 #5

Closed
Tracked by #3
NickVolynkin opened this issue Apr 5, 2023 · 0 comments · Fixed by #23
Closed
Tracked by #3

CI: build circuits & assignment tables on Linux/x86_64 #5

NickVolynkin opened this issue Apr 5, 2023 · 0 comments · Fixed by #23
Assignees

Comments

@NickVolynkin
Copy link
Contributor

NickVolynkin commented Apr 5, 2023

Run CI workflows to test instructions against the current version of template.

  • Use prebuilt image ghcr.io/nilfoundation/zkllvm-template:latest
  • Build circuit in .ll
  • Build .crct and .tbl
  • If any operation exits non-zero, fail CI and block PR merging.
@NickVolynkin NickVolynkin changed the title Build circuits & proofs on Linux/x86_64 Build circuits & assignment tables on Linux/x86_64 Jun 5, 2023
@NickVolynkin NickVolynkin changed the title Build circuits & assignment tables on Linux/x86_64 CI: build circuits & assignment tables on Linux/x86_64 Jun 5, 2023
NickVolynkin added a commit that referenced this issue Jun 12, 2023
Script `./scripts/build-circuit-ll.sh` runs in an environment with zkLLVM.
First, it builds the LLVM-IR form or circuit (`.ll`) with zkLLVM CLI.
Next, it builds the assignment table `.tbl` and circuit `.crct` with
assigner CLI.

Using separate script (rather than `run` steps in CI) enables testing
the same workflow locally with a single command.

Script `scripts/docker-run.sh` runs the first one in a container based
on a prebuilt image `ghcr.io/nilfoundation/zkllvm-template`,
that has all required dependencies, in particular, zkLLVM and Boost.
It's using Podman, when it is available, and Docker otherwise.

CI runs on default GitHub's `ubuntu-22.04` runners so that devs who fork
this repository would still have their CI working.

Resolve #5
NickVolynkin added a commit that referenced this issue Jun 12, 2023
Script `./scripts/build-circuit-ll.sh` runs in an environment with zkLLVM.
First, it builds the LLVM-IR form or circuit (`.ll`) with zkLLVM CLI.
Next, it builds the assignment table `.tbl` and circuit `.crct` with
assigner CLI.

Script `scripts/docker-run.sh` runs the first one in a container based
on a prebuilt image `ghcr.io/nilfoundation/zkllvm-template`,
that has all required dependencies, in particular, zkLLVM and Boost.
Script uses Podman when it is available, and Docker otherwise.

Using separate scripts (rather than `run` steps in CI) enables testing
the same workflow locally with a single command.

CI runs on default GitHub's `ubuntu-22.04` runners so that devs who fork
this repository would still have CI working in their forks.

Resolve #5
NickVolynkin added a commit that referenced this issue Jun 12, 2023
Script `./scripts/build-circuit-ll.sh` runs in an environment with zkLLVM.
First, it builds the LLVM-IR form or circuit (`.ll`) with zkLLVM CLI.
Next, it builds the assignment table `.tbl` and circuit `.crct` with
assigner CLI.

Script `scripts/docker-run.sh` runs the first one in a container based
on a prebuilt image `ghcr.io/nilfoundation/zkllvm-template`,
that has all required dependencies, in particular, zkLLVM and Boost.
Script uses Podman when it is available, and Docker otherwise.

Using separate scripts (rather than `run` steps in CI) enables testing
the same workflow locally with a single command.

CI runs on default GitHub's `ubuntu-22.04` runners so that devs who fork
this repository would still have CI working in their forks.

Resolves #5
NickVolynkin added a commit that referenced this issue Jun 12, 2023
Script `./scripts/build-circuit-ll.sh` runs in an environment with zkLLVM.
First, it builds the LLVM-IR form or circuit (`.ll`) with zkLLVM CLI.
Next, it builds the assignment table `.tbl` and circuit `.crct` with
assigner CLI.

Script `scripts/docker-run.sh` runs the first one in a container based
on a prebuilt image `ghcr.io/nilfoundation/zkllvm-template`,
that has all required dependencies, in particular, zkLLVM and Boost.
Script uses Podman when it is available, and Docker otherwise.

Using separate scripts (rather than `run` steps in CI) enables testing
the same workflow locally with a single command.

CI runs on default GitHub's `ubuntu-22.04` runners so that devs who fork
this repository would still have CI working in their forks.

Resolves #5
NickVolynkin added a commit that referenced this issue Jun 15, 2023
Rework script for more flexibility and extensibility:

* Run any command in a container with `--docker` or in the current
  environment without this parameter.
* Split compiling circuits and producing constraint & table, because
  further work with proof market requires the constraint only.
  Run each command as a separate step in CI.
* Use single script for all commands. New commands with the
  proof-market-toolchain will use the same syntax.

Follow-up to #5
NickVolynkin added a commit that referenced this issue Jun 15, 2023
Rework script for more flexibility and extensibility:

* Run any command in a container with `--docker` or in the current
  environment without this parameter.
* Split compiling circuits and producing constraint & table, because
  further work with proof market requires the constraint only.
  Run each command as a separate step in CI.
* Use single script for all commands. New commands with the
  proof-market-toolchain will use the same syntax.

The new script syntax is heavily inspired by
https://github.com/NilFoundation/dbms/blob/master/scripts/ci.sh

Follow-up to #5
NickVolynkin added a commit that referenced this issue Jun 15, 2023
Rework script for more flexibility and extensibility:

* Run any command in a container with `--docker` or in the current
  environment without this parameter.
* Split compiling circuits and producing constraint & table, because
  further work with proof market requires the constraint only.
  Run each command as a separate step in CI.
* Use single script for all commands. New commands with the
  proof-market-toolchain will use the same syntax.

The new script syntax is heavily inspired by
https://github.com/NilFoundation/dbms/blob/master/scripts/ci.sh

Follow-up to #5
NickVolynkin added a commit that referenced this issue Jun 15, 2023
Rework script for more flexibility and extensibility:

* Run any command in a container with `--docker` or in the current
  environment without this parameter.
* Split compiling circuits and producing constraint & table, because
  further work with proof market requires the constraint only.
  Run each command as a separate step in CI.
* Use single script for all commands. New commands with the
  proof-market-toolchain will use the same syntax.

The new script syntax is heavily inspired by
https://github.com/NilFoundation/dbms/blob/master/scripts/ci.sh

Follow-up to #5
NickVolynkin added a commit that referenced this issue Jun 15, 2023
Rework script for more flexibility and extensibility:

* Run any command in a container with `--docker` or in the current
  environment without this parameter.
* Split compiling circuits and producing constraint & table, because
  further work with proof market requires the constraint only.
  Run each command as a separate step in CI.
* Use single script for all commands. New commands with the
  proof-market-toolchain will use the same syntax.

The new script syntax is heavily inspired by
https://github.com/NilFoundation/dbms/blob/master/scripts/ci.sh

Follow-up to #5
@NickVolynkin NickVolynkin self-assigned this Jul 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant