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][feat][build] Major updates for devnet #146

Merged
merged 89 commits into from
Jun 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
48ac3a4
fixture(ci): add ability to choose the validator IP for the deployed …
leventdem Apr 19, 2023
28cac83
fixture(ci): update e2e test to rm zkpok ref
leventdem Apr 24, 2023
3a34a6a
fixture(ci): update script name
leventdem May 9, 2023
885e5c4
feature(ci): add ability to choose ref for zbc-solidity
leventdem May 10, 2023
202115a
feature(ci): add ability to choose ref for zbc-dev
leventdem May 10, 2023
cd8d497
feature(ci): add script to downlaod fhe keys for test script
leventdem May 10, 2023
dc8225a
feature(ci): add feature to enable deterministic computation for tfhe-rs
leventdem May 12, 2023
6fc1e99
feature(ci): add feature to enable deterministic computation for tfhe…
leventdem May 12, 2023
9004062
feature(ci): make e2e test an option (true per default)
leventdem May 16, 2023
3e35cb1
feature(ci): make e2e test an option (true per default) - fix
leventdem May 16, 2023
3c7401a
feature(local): add local dockerfile build for evmos node
leventdem May 22, 2023
30c2a17
feature(local): add local dockerfile build for evmos node -- not sure…
leventdem May 22, 2023
2a18528
feature(local): add missing as build-env part in Dockerfile
leventdem May 22, 2023
f5a06bd
feature(local): add missing as build-env part in Dockerfile --fix
leventdem May 22, 2023
c1e7bb6
feature(ci): add local build, docker build using Mafefile
leventdem Jun 8, 2023
5461a92
feature(ci): add local build, docker build using Mafefile -- refacto
leventdem Jun 8, 2023
a1beb33
chore(Makefile): add print-info target
leventdem Jun 9, 2023
d01a887
chore: update Development document + small changes for docker build
leventdem Jun 12, 2023
80cd87d
chore: update README and small fixes (path)
leventdem Jun 12, 2023
761d883
chore: update README + add a target to copy locally built zbc-fhe bin…
leventdem Jun 12, 2023
82f75de
chore: add script to get tag/commit/branch from directory
leventdem Jun 12, 2023
207fa2c
chore: add make print-info target in README
leventdem Jun 12, 2023
1947744
chore: fix sed issue on Mac
leventdem Jun 12, 2023
996e225
chore(ci): prepare e2e ci test triggered at PR
leventdem Jun 13, 2023
64fc9ea
chore(ci): add e2e workflow
leventdem Jun 13, 2023
515cfb8
chore(ci): fix script name call
leventdem Jun 13, 2023
6f1f905
chore(ci): fix env for ref
leventdem Jun 13, 2023
a6e7294
chore(ci): fix ethermint version
leventdem Jun 13, 2023
1c40854
chore(ci): fix working_directory
leventdem Jun 13, 2023
83c970b
chore(ci): fix path to evmos
leventdem Jun 13, 2023
77abf8c
chore(ci): mv ls
leventdem Jun 14, 2023
d8a2629
chore(ci): fix path to evmos
leventdem Jun 14, 2023
f010b2c
chore(ci): add pull image before build
leventdem Jun 14, 2023
aa3863b
chore(ci): add pull image before build -- fix
leventdem Jun 14, 2023
2e852db
chore(ci): add pull image before build -- print command
leventdem Jun 14, 2023
b67d027
chore(ci): build evmosnodelocal from docker directly instead of docke…
leventdem Jun 14, 2023
78d05d8
chore(ci): fix pull from ghcr.io
leventdem Jun 14, 2023
1d4b813
chore(ci): fix pull from ghcr.io for another from + make e2e
leventdem Jun 14, 2023
c5cead9
chore(ci): undestand why chech-zbc-fhe-tool target fail
leventdem Jun 14, 2023
8a68656
chore(ci): fix if git folder
leventdem Jun 14, 2023
17d954e
chore(ci): test if
leventdem Jun 14, 2023
312e542
chore(ci): fix ok
leventdem Jun 14, 2023
bb94885
chore(ci): mv zbc fhe tool build out of the else
leventdem Jun 14, 2023
6ca78d9
chore(ci): build zbc fhe tool with x86 arch for CI
leventdem Jun 14, 2023
b6e37cc
chore(ci): test
leventdem Jun 14, 2023
dd95c8d
chore(ci): fix missing $ in front of make
leventdem Jun 14, 2023
3ed36cb
chore(ci): test build zbc fhe
leventdem Jun 14, 2023
e8b1195
chore(ci): test build zbc fhe -- ok
leventdem Jun 14, 2023
948668b
chore(ci): update related to new inputs
leventdem Jun 14, 2023
026e02b
chore(ci): copy zbc-fhe-tool binary in zbc-solidity folder
leventdem Jun 14, 2023
ad0735f
chore(ci): add npm and node to install @openzeppelin contracts -neede…
leventdem Jun 15, 2023
ffe3294
chore(ci): fix indentation
leventdem Jun 15, 2023
60e591b
chore(ci): set zbc-fhe-tool tag
leventdem Jun 15, 2023
2c80bdf
chore(ci): update command to generate keys
leventdem Jun 15, 2023
ece9022
chore(ci): rm copy binary - the docker python includes zbc-fhe-tool b…
leventdem Jun 15, 2023
e7bbd55
chore(ci): update related to zbc-solidity refactor
leventdem Jun 15, 2023
1a49457
chore(ci): add npm install
leventdem Jun 15, 2023
2386704
chore(ci): update publish workflow + use deterministic makefile targe…
leventdem Jun 15, 2023
950fcfb
rm Makefile sed operation for deterministic feature, already handle i…
leventdem Jun 15, 2023
10e5b35
chore(ci): fix tag command git tag src:[tag] target:[tag]
leventdem Jun 15, 2023
b6ac0c0
chore(ci): fix tag command git tag src:[tag] target:[tag] add registr…
leventdem Jun 15, 2023
7707413
chore(ci): update validator deployment script
leventdem Jun 16, 2023
05922ca
chore(ci): fix path to files for mount and call right zama config file
leventdem Jun 16, 2023
665343b
chore(ci): fix path to docker-compose.validator.override.yml
leventdem Jun 16, 2023
cb600e7
chore(ci): fix path to zbc-solidity
leventdem Jun 16, 2023
d0e6a73
chore(ci): fix path to upload_genesis.sh
leventdem Jun 16, 2023
8959d53
chore(ci): fix path to upload_genesis.sh
leventdem Jun 16, 2023
fd997a0
chore(ci): fix path
leventdem Jun 16, 2023
ce3fe61
chore(ci): fix path to ERC20 test
leventdem Jun 16, 2023
063ac2e
chore(ci): add openzeppelin contracts
leventdem Jun 16, 2023
4d89a3a
chore(ci): add nightly for zbc-fhe-tool build
leventdem Jun 16, 2023
ab2431a
chore(ci): install openzeppelin
leventdem Jun 16, 2023
5b600a2
chore(ci): update e2e worflow
leventdem Jun 19, 2023
fc4e271
chore(ci): add sudo
leventdem Jun 19, 2023
ab5671b
chore(ci): update Makefile with last version for fhe tool
leventdem Jun 19, 2023
21dc57b
chore(ci): add new tag for go-ethereum
leventdem Jun 19, 2023
e2572b2
chore(ci): fix optional test in run e2e test workflow
leventdem Jun 19, 2023
9a5a60a
refactor(Makefile): enable build from source using env variable + imp…
leventdem Jun 20, 2023
bfaa0de
refactor(Makefile): rename build-with-docker target
leventdem Jun 20, 2023
c8c438b
chore(ci): update workflow make commands
leventdem Jun 20, 2023
453e7d8
chore(ci): add zbc-oracle-db and build eveything locally for LOCAL_BU…
leventdem Jun 21, 2023
95f4c25
chore(ci): update evmos node version, update README + add init-evmos…
leventdem Jun 21, 2023
8a225b1
chore(ci): update zbc-solidity version in Makefile
leventdem Jun 21, 2023
06478b2
chore(ci): fix base image build for ci_e2e_test workflow
leventdem Jun 21, 2023
8a9a958
chore(ci): fix base image build for ci_e2e_test workflow -- add loca…
leventdem Jun 21, 2023
62e2c6d
chore(ci): fix LOCAL_BUILD env value for run_e2e_test workflow
leventdem Jun 21, 2023
160e4fa
chore(ci): use zama-zbc-build image from ghcri.io instead of local …
leventdem Jun 21, 2023
42493b9
chore(ci): use zbc-oracle-db image from ghcri.io for workflow ci e2e…
leventdem Jun 21, 2023
64b7828
chore(ci): fix docker security issues
leventdem Jun 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# TFHE_RS_VERSION=0.2.1
# TFHE_RS_PATH=../tfhe-rs
# ZBC_DEVELOPMENT_PATH=../zbc-development
# ZBC_SOLIDITY_PATH=../zbc-solidity
# ZBC_FHE_TOOL_PATH=../zbc-fhe-tool
#LOCAL_BUILD=false
LOCAL_BUILD=true
GOPRIVATE=github.com/zama-ai/*
137 changes: 137 additions & 0 deletions .github/workflows/ci_e2e_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,140 @@ on:
description: 'Oracle Db service image tag (default: latest)'
type: string
required: false

jobs:
docker:
runs-on: ubuntu-latest
env:
ORACLE_DB_SERVICE_TAG: ${{ inputs.oracle_db_service_tag }}
steps:
- name: Echo user parameters
run: |
echo "oracle_db_service_tag: ${{ inputs.oracle_db_service_tag }}"

- name: Install Node.js and npm
run: |
sudo apt update
sudo apt install nodejs
sudo apt install npm

- name: Checkout
uses: actions/checkout@v3
with:
path: evmos

- name: Get version for all needed repositories
working-directory: ./evmos
run: |
echo "ZBC_DEVELOPMENT_VERSION=$(./scripts/get_version_from_makefile.sh ZBC_DEVELOPMENT_VERSION)" >> $GITHUB_ENV
echo "TFHE_RS_VERSION=$(./scripts/get_version_from_makefile.sh TFHE_RS_VERSION)" >> $GITHUB_ENV
echo "ZBC_FHE_TOOL_VERSION=$(./scripts/get_version_from_makefile.sh ZBC_FHE_TOOL_VERSION)" >> $GITHUB_ENV
echo "ZBC_SOLIDITY_VERSION=$(./scripts/get_version_from_makefile.sh ZBC_SOLIDITY_VERSION)" >> $GITHUB_ENV
echo "ETHERMINT_VERSION=$(./scripts/get_module_version.sh go.mod zama.ai/ethermint)" >> $GITHUB_ENV
echo "GO_ETHEREUM_VERSION=$(./scripts/get_module_version.sh go.mod zama.ai/go-ethereum)" >> $GITHUB_ENV

- name: Echo versions parsed from Makefile and go.mod
run: |
echo "ZBC_DEVELOPMENT_VERSION: $ZBC_DEVELOPMENT_VERSION"
echo "TFHE_RS_VERSION: $TFHE_RS_VERSION"
echo "ZBC_FHE_TOOL_VERSION: $ZBC_FHE_TOOL_VERSION"
echo "ZBC_SOLIDITY_VERSION: $ZBC_SOLIDITY_VERSION"
echo "ETHERMINT_VERSION: $ETHERMINT_VERSION"
echo "GO_ETHEREUM_VERSION: $GO_ETHEREUM_VERSION"

- name: Checkout zbc-dev
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-development
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/zbc-development
ref: ${{ env.ZBC_DEVELOPMENT_VERSION }}

- name: Checkout zbc-solidity
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-solidity
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/zbc-solidity
ref: ${{ env.ZBC_SOLIDITY_VERSION }}

- name: Checkout tfhe-rs
uses: actions/checkout@v3
with:
repository: zama-ai/tfhe-rs
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/tfhe-rs
ref: ${{ env.TFHE_RS_VERSION }}

- name: Checkout zbc-fhe-tool
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-fhe-tool
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/zbc-fhe-tool
ref: ${{ env.ZBC_FHE_TOOL_VERSION }}

- name: Checkout go-ethereum
uses: actions/checkout@v3
with:
repository: zama-ai/go-ethereum
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/go-ethereum
ref: ${{ env.GO_ETHEREUM_VERSION }}

- name: Checkout ethermint
uses: actions/checkout@v3
with:
repository: zama-ai/ethermint
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: ./evmos/work_dir/ethermint
ref: ${{ env.ETHERMINT_VERSION }}

- name: List files in the repository
run: |
ls ${{ github.workspace }}

- name: List files in work_dir
working-directory: evmos/work_dir
run: |
ls

- name: Prepare files for node setup
working-directory: evmos/work_dir/zbc-development
run: |
mkdir -p node/evmos
cp ../../private.ed25519 node/evmos
cp ../../public.ed25519 node/evmos
touch vm.log
ls node/evmos

- name: Login to GitHub Container Registry
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build local docker
working-directory: ./evmos
run: |
make build-docker

- name: Check docker images
working-directory: ./evmos
run: |
docker images

- name: Install @openzeppelin/contracts
working-directory: evmos/work_dir/zbc-solidity
run: |
npm install @openzeppelin/contracts

- name: Run e2e test
working-directory: ./evmos
run: |
ls ${{ github.workspace }}
ls work_dir
ls work_dir/zbc-fhe-tool
ls work_dir/zbc-fhe-tool/.git
make e2e-test
7 changes: 6 additions & 1 deletion .github/workflows/deploy_full_node_aws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ on:
default: 'latest'
type: string
required: false
validator_ip_address:
description: 'The ip of the validator to be synced on (default: 13.37.31.214)'
default: '13.37.31.214'
type: string
required: false
clean:
description: 'Clean docker related components (default: true, false only for first deployment)'
default: true
Expand Down Expand Up @@ -144,7 +149,7 @@ jobs:
AWS_S3_BUCKET: zbc-testnet
run: |
aws s3 ls s3://${AWS_S3_BUCKET}/
./download_genesis.sh
./download_genesis.sh ${{ inputs.validator_ip_address }}

- name: Prepare test (called demo)
working-directory: ./zbc-development
Expand Down
103 changes: 51 additions & 52 deletions .github/workflows/deploy_validator_aws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,6 @@ name: Deploy validator on Aws
on:
workflow_dispatch:
inputs:
ref_for_zbc_development:
description: 'Branch, tag or commit SHA1 to zbc-development'
required: true
default: "main"
type: string
ref_to_evmos:
description: 'Branch, tag or commit SHA1 to checkout evmos'
required: true
default: "v9.1.0-zama"
type: string
ref_to_zbc_solidity:
description: 'Branch, tag or commit SHA1 to checkout zbc-solidity'
required: true
default: "feature/CI-testing"
type: string
evmos_node_tag:
description: 'Evmos node image tag (default: latest)'
default: 'latest'
Expand All @@ -33,6 +18,11 @@ on:
default: true
type: boolean
required: false
run_test:
description: 'Run e2e test after deployment (default: true)'
default: true
type: boolean
required: false


jobs:
Expand All @@ -42,12 +32,12 @@ jobs:
if: ${{ inputs.clean }}
steps:
- name: Stop docker compose
working-directory: ./zbc-development
working-directory: ./evmos
run: |
docker compose -f docker-compose.validator.yml down
docker compose -f docker-compose/docker-compose.validator.yml down

- name: Clean all docker related image, cache, container ...
working-directory: ./zbc-development
working-directory: ./evmos
run: |
docker system prune -af

Expand All @@ -62,9 +52,6 @@ jobs:
steps:
- name: Echo user parameters
run: |
echo "ref_for_zbc_development: ${{ inputs.ref_for_zbc_development }}"
echo "ref_to_evmos: ${{ inputs.ref_to_evmos }}"
echo "ref_to_zbc_solidity: ${{ inputs.ref_to_zbc_solidity }}"
echo "evmos_node_tag: ${{ inputs.evmos_node_tag }}"
echo "oracle_db_service_tag: ${{ inputs.oracle_db_service_tag }}"
echo "clean: ${{ inputs.clean }}"
Expand All @@ -75,24 +62,25 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
with:
path: evmos
ref: ${{ inputs.ref_to_evmos }}

- name: Checkout zbc-dev
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-development
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: zbc-development
ref: ${{ inputs.ref_for_zbc_development }}
path: evmos


- name: Get version for all needed repositories
working-directory: ./evmos
run: |
echo "ZBC_SOLIDITY_VERSION=$(./scripts/get_version_from_makefile.sh ZBC_SOLIDITY_VERSION)" >> $GITHUB_ENV

- name: Echo versions parsed from Makefile and go.mod
run: |
echo "ZBC_SOLIDITY_VERSION: $ZBC_SOLIDITY_VERSION"

- name: Checkout zbc-solidity
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-solidity
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: zbc-solidity
ref: ${{ inputs.ref_to_zbc_solidity }}
path: ./evmos/work_dir/zbc-solidity
ref: ${{ env.ZBC_SOLIDITY_VERSION }}

- name: List files in the repository
run: |
Expand All @@ -106,15 +94,15 @@ jobs:
aws-region: eu-west-3

- name: Download keys from S3
working-directory: ./zbc-development
working-directory: ./evmos
env:
AWS_S3_BUCKET: zbc-testnet
run: |
aws s3 ls s3://${AWS_S3_BUCKET}/users-fhe-keys/
./prepare_volumes_validator_ci.sh
aws s3 ls s3://${AWS_S3_BUCKET}
./scripts/prepare_volumes_validator_ci.sh

- name: Prepare files for node setup
working-directory: ./zbc-development
working-directory: ./evmos
run: |
mkdir -p node/evmos
cp ../evmos/private.ed25519 node/evmos
Expand All @@ -123,7 +111,7 @@ jobs:
ls node/evmos

- name: List files in volumes
working-directory: ./zbc-development
working-directory: ./evmos
run: |
ls volumes

Expand All @@ -135,26 +123,26 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

- name: Prepare evmos node aka run setup.sh
working-directory: ./zbc-development
working-directory: ./evmos
run: |
docker compose -f docker-compose.validator.yml run validator bash /config/setup.sh
docker compose -f docker-compose/docker-compose.validator.yml run validator bash /config/setup.sh


- name: Check running node owner and change it
working-directory: ./zbc-development
working-directory: ./evmos
run: |
ls -all .
sudo chown -R $USER:$USER running_node/
sudo chown -R $USER: running_node/

- name: Prepare test (called demo)
working-directory: ./zbc-development
- name: Prepare keys
working-directory: ./evmos
run: |
./prepare_demo_testnet_ci.sh
./scripts/prepare_validator_ci.sh

- name: Start whole testnet
working-directory: ./zbc-development
working-directory: ./evmos
run: |
docker compose -f docker-compose.validator.yml -f docker-compose.validator.override.yml up --detach
docker compose -f docker-compose/docker-compose.validator.yml -f docker-compose/docker-compose.validator.override.yml up --detach

- name: Check running docker
run: |
Expand All @@ -165,19 +153,30 @@ jobs:
sleep 5s

- name: List files in zbc-solidity
working-directory: ./zbc-solidity
working-directory: evmos/work_dir/zbc-solidity
run: |
ls

- name: Upload genesis and node_id to S3 bucket to allow other nodes to sync
working-directory: ./zbc-development
working-directory: ./evmos
env:
AWS_S3_BUCKET: zbc-testnet
run: |
aws s3 ls s3://${AWS_S3_BUCKET}/
./upload_genesis.sh
./scripts/upload_genesis.sh

- name: Prepare/download fhe keys
working-directory: evmos/work_dir/zbc-solidity
run: |
./ci/scripts/prepare_fhe_keys_ci.sh

- name: Install @openzeppelin/contracts
working-directory: evmos/work_dir/zbc-solidity
run: |
npm install @openzeppelin/contracts

- name: Run e2e test from zbc-solidty
working-directory: ./zbc-solidity
if: ${{ inputs.run_test }}
working-directory: evmos/work_dir/zbc-solidity
run: |
./run_ci_test.sh mykey1
./ci/scripts/run_ERC20_ci_test.sh mykey1 ../../
Loading
Loading