commit 5bf187612ab37dcdcd693b9fd57dacc71e3e2e9f
parent c7b8ccfa622076789602a37bb6f29841c7cfc4d3
Author: Blair Vanderlugt <blair.vanderlugt@gmail.com>
Date: Tue, 25 Jan 2022 15:36:22 +0000
Merge branch 'add-tests' into 'master'
feat: seperate solc container for resuse, add caching, run tests
See merge request cicnet/eth-erc20!5
Diffstat:
4 files changed, 57 insertions(+), 49 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
@@ -2,25 +2,41 @@ stages:
- test
- slither-analyzer
+variables:
+ PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
+
+cache:
+ paths:
+ - .cache/pip
+ - venv/
+
+before_script:
+ - python -V # Print out python version for debugging
+ - pip install virtualenv
+ - virtualenv venv
+ - source venv/bin/activate
+
test:
- image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-py-alpine:latest
- cache:
- - key:
- files:
- - requirements.txt
- - test_requirements.txt
- paths:
- - /root/.cache/pip
+ image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest
script:
- - cd python
- - pip install --extra-index-url https://pip.grassrootseconomics.net:8433 -r test_requirements.txt
- - pip install --extra-index-url https://pip.grassrootseconomics.net:8433 -r test_requirements.txt
- - bash run_tests.sh
-
+ # build abi
+ - 'echo "Running Solc Version: $(solc --version)"'
+ - cd solidity
+ - solc --evm-version=byzantium GiftableToken.sol --abi | awk 'NR>3' > GiftableToken.abi.json
+ # build bin
+ - solc GiftableToken.sol --bin | awk 'NR>3' > GiftableToken.bin &&
+ truncate -s "$((`stat -t -c "%s" GiftableToken.bin`-1))" GiftableToken.bin
+ # install test dependencies
+ - cd ../python
+ - export PYTHONPATH=.
+ - pip install --extra-index-url https://pip.grassrootseconomics.net
+ --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple
+ -r requirements.txt -r test_requirements.txt
+ # run tests
+ - bash run_tests.sh
slither-analize:
- image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-py-alpine:latest
+ image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest
+ allow_failure: true
script:
- - pip install slither-analyzer
- slither solidity/
-
diff --git a/Dockerfile b/Dockerfile
@@ -1,33 +0,0 @@
-FROM ethereum/solc:0.6.12
-
-FROM python:3.8.6-alpine
-
-COPY --from=0 /usr/bin/solc /usr/bin/solc
-
-RUN apk update &&\
- apk add gcc bash musl-dev libffi-dev openssl-dev autoconf automake build-base \
- libtool pkgconfig python3-dev cargo
-
-WORKDIR /usr/src
-
-# Try to keep everything above here re-usable!
-
-COPY ./solidity/ /usr/src/giftable_erc20_token/solidity/
-COPY ./python/ /usr/src/giftable_erc20_token/python/
-
-RUN chmod +x ./python/run_tests.sh
-
-RUN cd giftable_erc20_token/solidity && \
- solc GiftableToken.sol --abi | awk 'NR>3' > GiftableToken.abi.json
-
-RUN cd giftable_erc20_token/solidity && \
- solc GiftableToken.sol --bin | awk 'NR>3' > GiftableToken.bin && \
- truncate -s "$((`stat -t -c "%s" GiftableToken.bin`-1))" GiftableToken.bin
-
-RUN cd giftable_erc20_token/python && \
- pip install --extra-index-url https://pip.grassrootseconomics.net:8433 .
-
-RUN pip install slither-analyzer
-
-# To deploy:
-# giftable-token-deploy --contracts-dir giftable_erc20_token/solidity/ <amount>
diff --git a/README.md b/README.md
@@ -0,0 +1,25 @@
+# ETH-ERC20 Solidity Contract
+
+
+### solidity
+
+To generate bytecode and tests install solc 8.x.x and run the solc bits below or execute the following:
+
+```
+docker run -v `pwd`:/src registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest solc --evm-version=byzantium solidity/GiftableToken.sol --abi
+```
+
+```
+docker run -v `pwd`:/src registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest solc GiftableToken.sol --bin | awk 'NR>3' > GiftableToken.bin
+```
+
+### python unit tests
+
+```
+pip install --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple \
+--extra-index-url https://pip.grassrootseconomics.net \
+-r requirements.txt -r test_requirements.txt
+
+bash python/run_tests.sh
+
+```
diff --git a/python/run_tests.sh b/python/run_tests.sh