solidity/.circleci
hrkrshnn d176716d47 Added extra commands that needs to be run before brew update
Fixes the following issue:

Error:
  homebrew-core is a shallow clone.
  homebrew-cask is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
These commands may take a few minutes to run due to the large size of the repositories.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!
2021-06-17 10:34:57 +02:00
..
build_win.ps1 build_win.ps1: Use committer date rather than author date in prerelease.txt 2021-01-15 19:09:49 +01:00
config.yml Disable SMT tests on Arch Linux until the problem with hanging tests on Z3 4.8.11 is resolved 2021-06-14 15:38:19 +02:00
osx_install_dependencies.sh Added extra commands that needs to be run before brew update 2021-06-17 10:34:57 +02:00
README.md Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them. 2020-05-11 17:35:01 +02:00
soltest_all.sh Set default EVM version to Berlin 2021-05-26 12:23:06 +02:00
soltest.ps1 Set ErrorActionPreference on all powershell scripts and add explicit error checks. 2020-09-17 14:44:52 +02:00
soltest.sh Add shellcheck source directive in places where it can't find sourced files on its own 2021-03-15 12:16:43 +01:00

CircleCI integration

Docker images

The docker images are build locally on the developer machine:

cd .circleci/docker/

docker build -t ethereum/solidity-buildpack-deps:ubuntu2004-<revision> -f Dockerfile.ubuntu2004 .
docker push ethereum/solidity-buildpack-deps:ubuntu2004-<revision>

The current revisions per docker image are stored in circle ci pipeline parameters called <image-desc>-docker-image-rev (e.g., ubuntu-2004-docker-image-rev). Please update the value assigned to the parameter(s) corresponding to the docker image(s) being updated at the time of the update. Please verify that the value assigned to the parameter matches the revision part of the docker image tag (<revision> in the docker build/push snippet shown above). Otherwise, the docker image used by circle ci and the one actually pushed to docker hub will differ.

Once the docker image has been built and pushed to Dockerhub, you can find it at:

https://hub.docker.com/r/ethereum/solidity-buildpack-deps:ubuntu2004-<revision>

where the image tag reflects the target OS and revision to build Solidity and run its tests on.

Testing docker images locally

cd solidity
# Mounts your local solidity directory in docker container for testing
docker run -v `pwd`:/src/solidity -ti ethereum/solidity-buildpack-deps:ubuntu2004-<revision> /bin/bash
cd /src/solidity
<commands_to_test_build_with_new_docker_image>