Skip to content

Commit

Permalink
Run only tests for PRs and run tests and coverage report (where possi…
Browse files Browse the repository at this point in the history
…ble) on main branch only
  • Loading branch information
noisekit committed Aug 11, 2023
1 parent fa1857c commit f897fe1
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 56 deletions.
115 changes: 115 additions & 0 deletions .github/workflows/test-with-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Coverage

on:
push:
branches:
- "main"
- "coverage"

jobs:
coverage:
runs-on: ubuntu-latest
env:
CANNON_IPFS_URL: "http://127.0.0.1:5001"
CANNON_PUBLISH_IPFS_URL: "http://127.0.0.1:5001"
strategy:
fail-fast: false
matrix:
workspace: [
"@synthetixio/main",
"@synthetixio/oracle-manager",
# "@synthetixio/governance", # no tests :/

"@synthetixio/core-contracts",
"@synthetixio/core-utils",
"@synthetixio/core-modules",
"@synthetixio/hardhat-storage",
"@synthetixio/sample-project",

# "@synthetixio/legacy-market", # tests fail
"@synthetixio/spot-market",
"@synthetixio/perps-market",

"@synthetixio/core-subgraph",
"@synthetixio/spot-market-subgraph",
"@synthetixio/perps-market-subgraph",
]

include:
- workspace: "@synthetixio/main"
codecov-file: protocol/synthetix/coverage.json
codecov-flags: main

- workspace: "@synthetixio/oracle-manager"
codecov-file: protocol/oracle-manager/coverage.json
codecov-flags: oracle-manager

- workspace: "@synthetixio/core-contracts"
codecov-file: utils/core-contracts/coverage.json
codecov-flags: core-contracts

- workspace: "@synthetixio/core-utils"
codecov-file: utils/core-utils/coverage/lcov.info
codecov-flags: core-utils

- workspace: "@synthetixio/core-modules"
codecov-file: utils/core-modules/coverage.json
codecov-flags: core-modules

- workspace: "@synthetixio/hardhat-storage"
codecov-file: utils/hardhat-storage/coverage/lcov.info
codecov-flags: hardhat-storage

- workspace: "@synthetixio/sample-project"
codecov-file: utils/sample-project/coverage.json
codecov-flags: sample-project

steps:
- name: Install Foundry (Cannon)
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- run: anvil -V
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "16.20.1"
cache: "yarn"
- uses: ibnesayeed/setup-ipfs@92d412e0dad36c06ffab50733e9c624896a0964f
with:
run_daemon: true

- run: yarn install --immutable --immutable-cache
- run: yarn workspaces foreach --topological-dev --recursive --verbose --from "${{ matrix.workspace }}" run build:ts
- run: yarn workspaces foreach --topological-dev --recursive --verbose --from "${{ matrix.workspace }}" run build-testable

- name: Execute size-contracts command
run: |
if yarn workspace ${{ matrix.workspace }} run | grep size-contracts; then
yarn workspace ${{ matrix.workspace }} run size-contracts
else
echo 'SKIP. No "size-contracts" script'
fi
- name: Check storage.dump.sol is up-to-date
run: |
if yarn workspace ${{ matrix.workspace }} run | grep check:storage; then
yarn workspace ${{ matrix.workspace }} run check:storage
else
echo 'SKIP. No "check:storage" script'
fi
- name: Execute tests with coverage
run: |
if yarn workspace ${{ matrix.workspace }} run | grep coverage; then
REPORT_GAS=true yarn workspace ${{ matrix.workspace }} run coverage
else
echo 'SKIP. No "coverage" script'
fi
- if: ${{ matrix.codecov-file }}
name: Upload ${{ matrix.workspace }} coverage to Codecov
uses: codecov/codecov-action@v2
with:
files: ${{ matrix.codecov-file }}
flags: ${{ matrix.codecov-flags }}
80 changes: 24 additions & 56 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ name: Test

on:
pull_request: {}
push:
branches:
- "main"

jobs:
test:
Expand All @@ -15,46 +12,26 @@ jobs:
CANNON_PUBLISH_IPFS_URL: "http://127.0.0.1:5001"
strategy:
matrix:
package:
[
core-contracts,
core-utils,
core-modules,
sample-project,
main,
oracle-manager,
spot-market,
perps-market,
core-subgraph,
spot-market-subgraph,
perps-market-subgraph,
workspace: [
"@synthetixio/main",
"@synthetixio/oracle-manager",
# "@synthetixio/governance", # no tests :/

"@synthetixio/core-contracts",
"@synthetixio/core-utils",
"@synthetixio/core-modules",
"@synthetixio/hardhat-storage",
"@synthetixio/sample-project",

# "@synthetixio/legacy-market", # tests fail
"@synthetixio/spot-market",
"@synthetixio/perps-market",

"@synthetixio/core-subgraph",
"@synthetixio/spot-market-subgraph",
"@synthetixio/perps-market-subgraph",
]
include:
- package: core-contracts
workspace: "@synthetixio/core-contracts"
coverage-file: utils/core-contracts/coverage.json
- package: core-utils
workspace: "@synthetixio/core-utils"
coverage-file: utils/core-utils/coverage/lcov.info
- package: core-modules
workspace: "@synthetixio/core-modules"
coverage-file: utils/core-modules/coverage.json
- package: sample-project
workspace: "@synthetixio/sample-project"
- package: oracle-manager
workspace: "@synthetixio/oracle-manager"
- package: spot-market
workspace: "@synthetixio/spot-market"
- package: perps-market
workspace: "@synthetixio/perps-market"
- package: main
workspace: "@synthetixio/main"
- package: core-subgraph
workspace: "@synthetixio/core-subgraph"
- package: spot-market-subgraph
workspace: "@synthetixio/spot-market-subgraph"
- package: perps-market-subgraph
workspace: "@synthetixio/perps-market-subgraph"

steps:
- name: Install Foundry (Cannon)
uses: foundry-rs/foundry-toolchain@v1
Expand All @@ -71,10 +48,8 @@ jobs:
run_daemon: true

- run: yarn install --immutable --immutable-cache

- run: yarn workspaces foreach --topological-dev --recursive --verbose --from ${{ matrix.workspace }} run build:ts

- run: yarn workspaces foreach --topological-dev --recursive --verbose --from ${{ matrix.workspace }} run build-testable
- run: yarn workspaces foreach --topological-dev --recursive --verbose --from "${{ matrix.workspace }}" run build:ts
- run: yarn workspaces foreach --topological-dev --recursive --verbose --from "${{ matrix.workspace }}" run build-testable

- name: Execute size-contracts command
run: |
Expand All @@ -94,15 +69,8 @@ jobs:
- name: Execute tests
run: |
if yarn workspace ${{ matrix.workspace }} run | grep coverage; then
REPORT_GAS=true yarn workspace ${{ matrix.workspace }} run coverage
if yarn workspace ${{ matrix.workspace }} run | grep test; then
REPORT_GAS=true yarn workspace ${{ matrix.workspace }} run test
else
echo 'SKIP. No "coverage" script'
echo 'SKIP. No "test" script'
fi
- if: ${{ matrix.coverage-file }}
name: Upload ${{ matrix.workspace }} coverage to Codecov
uses: codecov/codecov-action@v2
with:
files: ${{ matrix.coverage-file }}
flags: ${{ matrix.package }}

0 comments on commit f897fe1

Please sign in to comment.