Codebase for containerized build and development environment.
See Dockerfile.bazel for info about required dependencies.
- x86-64 based system (at least 8 CPUs, 16 GB MEM/SWAP, 100 GB available disk space)
- Ubuntu 20.04 or newer
- Podman
Note: With Ubuntu 20.10 and newer, you can simply do sudo apt install -y podman
. With older versions see Ubuntu section of Podman Installation Guide. It's recommended to use Ubuntu 22.04.
See Ubuntu 22.04 Cloud Config for Cloud-init.
You can simply replace $SSH_KEY
and $REVISION
variables in the file with values and feed it to Ubuntu 22.04 cloud instance you're creating to build or verify IC artifacts. See the example snippet which gives you the final userdata.yaml
that you can use.
export REVISION="ff8d2c62c88a84b744bb1114c17aa1ea3......e"
export SSH_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPUaR2BDvN0ZDfQ+WFNa3NW3X3V3Qrxb7f6wn6ZbQkJm"
envsubst < userdata-ubuntu-2204.yaml > userdata.yaml
Note: Above userdata.yaml
is possible for $REVISION
that is newer then 08244b2bc9bbb19d417d37f6912acfebbdbf4f49
when build-ic.sh
became available.
Cloud Config is being daily tested on official Ubuntu 22.04 Image.
$ ./gitlab-ci/container/build-ic.sh -i
$ # artifacts are available under ./artifacts directory
$ tree artifacts/
Note: This implies building binaries and canisters as IC-OS requires them.
Only binaries:
$ ./gitlab-ci/container/build-ic.sh -b
$ # artifacts are available under ./artifacts/binaries directory
$ ls -l artifacts/binaries
Only canisters:
$ ./gitlab-ci/container/build-ic.sh -c
$ # artifacts are available under ./artifacts/canisters directory
$ ls -l artifacts/canisters
Both binaries and canisters:
$ ./gitlab-ci/container/build-ic.sh -b -c