This directory contains a Dockerfile, which is used to create an ubuntu 18.04 based image to be used as a build executor on CircleCI.
The image comes with some things pre-installed.
The PostgreSQL server and dev files are installed.
The name:tag of the image will be trustlines/builder:$CIRCLE_BRANCH$CIRCLE_BUILD_NUM.
To check the most recent tag, go to the dockerhub repo of trustlines/builder.
Currently the image contains solidity versions 0.4.25, 0.4.26, 0.5.1, 0.5.7, 0.5.8 and 0.8.0.
You can choose the version that's being used by setting the SOLC_VERSION environment variable.
This could be done in the executor definition, e.g. the following will choose solidity 0.4.25::
executors:
ubuntu-builder:
docker:
- image: trustlines/builder:master9
environment:
- SOLC_VERSION=v0.4.25
working_directory: ~/repo
The image comes with Openethereum version 3.0.1 installed.
The image has Node Version Manager installed with nodejs 10.14.2 already installed.
Enable it by configuring something like:
config-path:
description: "set environment variables and change PATH"
steps:
- run:
name: Configuring PATH
command: |
echo >> ${BASH_ENV} 'export PATH=~/bin:~/repo/venv/bin:${PATH}'
echo >> ${BASH_ENV} '. ~/.nvm/nvm.sh'
twine can be used to upload python packages to pypi.
shellcheck is a linter for shell scripts.
shfmt is a shell script autoformatter.
Please feel free to change the image according to your needs, but try to stay backwards compatible. E.g. if you add a new solidity version, don't remove the old version unless you're sure it's not being used anymore. This will allow us to use the latest image everywhere.