From 476f736f7f0d879cc8d87e67d657c95ce3bd4b09 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Mon, 27 Jul 2020 17:07:29 +0300 Subject: [PATCH] coveralls --- .github/workflows/config.yml | 152 ++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 1 deletion(-) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 1277c04817..31469e7d34 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -1000,7 +1000,7 @@ jobs: mix ecto.create --quiet mix ecto.migrate cd apps/indexer - MIX_ENV=test mix test --no-start --exclude no_parity + mix test --no-start --exclude no_parity env: MIX_ENV: test # match POSTGRES_PASSWORD for postgres image below @@ -1137,6 +1137,156 @@ jobs: mix ecto.migrate cd apps/block_scout_web mix test --no-start --exclude no_parity + env: + MIX_ENV: test + # match POSTGRES_PASSWORD for postgres image below + PGPASSWORD: postgres + # match POSTGRES_USER for postgres image below + PGUSER: postgres + ETHEREUM_JSONRPC_CASE: "EthereumJSONRPC.Case.Parity.Mox" + ETHEREUM_JSONRPC_WEB_SOCKET_CASE: "EthereumJSONRPC.WebSocket.Case.Mox" + coveralls: + runs-on: ubuntu-latest + services: + postgres: + image: postgres + env: + # Match apps/explorer/config/test.exs config :explorer, Explorer.Repo, database + POSTGRES_DB: explorer_test + # match PGPASSWORD for elixir image above + POSTGRES_PASSWORD: postgres + # match PGUSER for elixir image above + POSTGRES_USER: postgres + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + # Maps tcp port 5432 on service container to the host + - 5432:5432 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-elixir@v1 + with: + otp-version: '22.2' + elixir-version: '1.10.3' + - run: mix local.hex --force + - run: mix local.rebar --force + - name: Cache mix.exs + uses: actions/cache@v2 + with: + path: ~/ + key: | + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum "ELIXIR_VERSION.lock" }} + restore-keys: v8-mix-compile- + - run: mix deps.get + - name: Cache node modules + uses: actions/cache@v2 + with: + path: ~/.npm + key: | + v7-npm-install-{{ .Branch }}-{{ checksum "apps/block_scout_web/assets/package-lock.json" }} + 'v7-npm-install-{{ .Branch }}' + v7-npm-install + restore-keys: v7-npm-install- + - run: npm install + working-directory: apps/explorer + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/explorer/node_modules + key: >- + v3-npm-install-{{ .Branch }}-{{ checksum + "apps/explorer/package-lock.json" }} + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/explorer/node_modules + key: 'v3-npm-install-{{ .Branch }}' + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/explorer/node_modules + key: v3-npm-install + - run: npm install + working-directory: apps/block_scout_web/assets + - run: npm rebuild node-sass + working-directory: apps/block_scout_web/assets + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/block_scout_web/assets/node_modules + key: >- + v7-npm-install-{{ .Branch }}-{{ checksum + "apps/block_scout_web/assets/package-lock.json" }} + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/block_scout_web/assets/node_modules + key: 'v7-npm-install-{{ .Branch }}' + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: apps/block_scout_web/assets/node_modules + key: v7-npm-install + - run: mix compile + - run: make + working-directory: "deps/libsecp256k1" + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: | + deps + _build + key: >- + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum + "ELIXIR_VERSION.lock" }}-{{ checksum "mix.lock" }} + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: | + deps + _build + key: >- + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum + "ELIXIR_VERSION.lock" }}-{{ checksum "mix.exs" }} + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: | + deps + _build + key: >- + v8-mix-compile-{{ checksum "OTP_VERSION.lock" }}-{{ checksum + "ELIXIR_VERSION.lock" }} + - name: Build assets + run: node node_modules/webpack/bin/webpack.js --mode development + working-directory: "apps/block_scout_web/assets" + - run: ./bin/install_chrome_headless.sh + - name: prepare DB + run: | + mix ecto.create --quiet + mix ecto.migrate + env: + MIX_ENV: test + # match POSTGRES_PASSWORD for postgres image below + PGPASSWORD: postgres + # match POSTGRES_USER for postgres image below + PGUSER: postgres + - name: coveralls + run: | + # Don't submit coverage report for forks, but let the build succeed + if [[ -z "$COVERALLS_REPO_TOKEN" ]]; then + mix coveralls.html --exclude no_parity --parallel --umbrella + else + mix coveralls.circle --exclude no_parity --parallel --umbrella || + # if mix failed, then coveralls_merge won't run, so signal done here and return original exit status + (retval=$? && curl -k https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN -d "payload[build_num]=$CIRCLE_WORKFLOW_WORKSPACE_ID&payload[status]=done" && return $retval) + fi env: MIX_ENV: test # match POSTGRES_PASSWORD for postgres image below