diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e02d361..a014d07 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,25 +2,41 @@ stages: - test - slither-analyzer -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 - 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 +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-python:latest + script: + # 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 deleted file mode 100644 index d27678e..0000000 --- a/Dockerfile +++ /dev/null @@ -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/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..6afe58d --- /dev/null +++ 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 old mode 100644 new mode 100755