name: Test on: pull_request: branches: '*' push: branches: - main - ci-test # Needed until we can incorporate docker startup into the executor container env: DOCKER_HOST: unix:///var/run/dind.sock SO_VERSION: v1.1.0-c30c779-202309082138 jobs: unit-tests: name: Run unit tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version-file: 'go.mod' check-latest: true - name: Run dockerd run: | dockerd -H $DOCKER_HOST --userland-proxy=false & sleep 5 - name: Run DB container run: | docker compose -f test/compose.yml up --wait - name: Set up Gitea access token env: TOKEN: ${{ secrets.CICD_REPO_TOKEN }} run: | git config --global url."https://$TOKEN:@git.vdb.to/".insteadOf https://git.vdb.to/ - name: Run tests run: go test -p 1 -v ./... integration-tests: name: Run integration tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: path: ./plugeth-statediff - uses: actions/checkout@v3 with: repository: cerc-io/plugeth ref: statediff path: ./plugeth - name: Run dockerd run: dockerd -H $DOCKER_HOST --userland-proxy=false & # These images need access tokens configured - name: Build docker image env: TOKEN: ${{ secrets.CICD_REPO_TOKEN }} run: | [[ -n "$TOKEN" ]] docker build ./plugeth-statediff -t cerc/plugeth-statediff:local \ --build-arg GIT_VDBTO_TOKEN="$TOKEN" docker build ./plugeth -t cerc/plugeth:local \ --build-arg GIT_VDBTO_TOKEN="$TOKEN" - name: Install stack-orchestrator run: | curl -L -O https://github.com/cerc-io/stack-orchestrator/releases/download/$SO_VERSION/laconic-so chmod +x laconic-so - name: Clone system-tests uses: actions/checkout@v3 with: repository: cerc-io/system-tests ref: plugeth-compat path: ./system-tests token: ${{ secrets.CICD_REPO_TOKEN }} - name: Run testnet stack working-directory: ./plugeth-statediff env: LACONIC_SO: ../laconic-so run: ./scripts/integration-setup.sh - name: Install Python uses: actions/setup-python@v4 with: python-version: 3.10 - name: Run tests working-directory: ./system-tests run: | pip install pytest pip install -r requirements.txt pytest -v -k test_basic_db compliance-test: name: Run compliance tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: path: ./plugeth-statediff - uses: actions/checkout@v3 with: repository: cerc-io/eth-statediff-compliance ref: v0.1.0 path: ./eth-statediff-compliance token: ${{ secrets.CICD_REPO_TOKEN }} - uses: actions/setup-go@v4 with: go-version-file: './eth-statediff-compliance/go.mod' check-latest: true - name: Install jq run: apt-get update && apt-get install -yq jq - name: Set up Gitea access token env: TOKEN: ${{ secrets.CICD_REPO_TOKEN }} run: | git config --global url."https://$TOKEN:@git.vdb.to/".insteadOf https://git.vdb.to/ - name: Update go.mod for dumpdiff-geth working-directory: ./eth-statediff-compliance/ run: ./scripts/update-mod.sh ../plugeth-statediff dumpdiff-geth/ - name: Update go.mod for dumpdiff-plugeth working-directory: ./eth-statediff-compliance/ run: ./scripts/update-mod.sh ../plugeth-statediff dumpdiff-plugeth/ - name: Update go.mod for dumpdiff-plugeth-parallel working-directory: ./eth-statediff-compliance/ run: ./scripts/update-mod.sh ../plugeth-statediff dumpdiff-plugeth-parallel/ - name: Build tools working-directory: ./eth-statediff-compliance/ run: make all - name: Compare output of geth and plugeth working-directory: ./eth-statediff-compliance/ run: ./scripts/compare-diffs.sh geth plugeth - name: Compare output of geth and plugeth-parallel working-directory: ./eth-statediff-compliance/ run: ./scripts/compare-diffs.sh geth plugeth-parallel