Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0bd6c60
setup cargo llvm-cov
oXtxNt9U May 14, 2025
a22b4a6
use test:coverage
oXtxNt9U May 14, 2025
f36270e
check coverage example
oXtxNt9U May 14, 2025
1c76b67
add contracts/coverage.sh
oXtxNt9U May 15, 2025
841aadc
run contracts coverage on CI
oXtxNt9U May 15, 2025
a03bfb9
update .gitignore
oXtxNt9U May 15, 2025
c87321e
style: resolve style guide violations
oXtxNt9U May 15, 2025
3ad1235
use bash
oXtxNt9U May 15, 2025
cc0558e
lower threshold
oXtxNt9U May 15, 2025
5f24066
Temporary disable tests
sebastijankuzner May 16, 2025
4619c04
Create lcov.info in rust
sebastijankuzner May 16, 2025
21e13eb
Create lcov in c8
sebastijankuzner May 16, 2025
bd58d27
Add lcov-result-merger
sebastijankuzner May 16, 2025
1a003fa
Add scripts
sebastijankuzner May 16, 2025
719b972
Ignore merged-lcov.info
sebastijankuzner May 16, 2025
67d5289
Add codecov report
sebastijankuzner May 16, 2025
24d028e
style: resolve style guide violations
sebastijankuzner May 16, 2025
5a4e25d
Enable tests
sebastijankuzner May 16, 2025
b33d6e2
Merge branch 'develop' into chore/ci/coverage
sebastijankuzner May 16, 2025
0b1822a
Include all files
sebastijankuzner May 16, 2025
7f46e23
Filter test dir in contracts
sebastijankuzner May 16, 2025
d4b5131
Remove --workspace flag
sebastijankuzner May 16, 2025
eeda323
Use relative paths
sebastijankuzner May 16, 2025
8e6791d
Use custom merger
sebastijankuzner May 16, 2025
a79e68d
Include contracts
sebastijankuzner May 16, 2025
548b7cc
CI coverage for contracts
sebastijankuzner May 16, 2025
c7f9a52
style: resolve style guide violations
sebastijankuzner May 16, 2025
4b51ae5
increase timeout
oXtxNt9U May 19, 2025
39f8b2c
Skip if token is not present
sebastijankuzner May 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions .github/workflows/contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ jobs:
check:
name: contracts
runs-on: ubuntu-latest
defaults:
run:
working-directory: contracts
steps:
- uses: actions/checkout@v4

Expand All @@ -26,12 +29,15 @@ jobs:
with:
version: nightly

- name: Build
working-directory: contracts
- name: Run test with coverage
run: |
forge build
bash ./coverage.sh

- name: Run tests
working-directory: contracts
run: |
forge test -vvv
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
if: ${{ secrets.CODECOV_TOKEN != '' }}
with:
files: ./lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
slug: ArkEcosystem/mainsail
flags: contracts
165 changes: 97 additions & 68 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ jobs:
key: lerna-${{ runner.os }}-${{ github.run_id }}
path: ./.cache

- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: llvm-tools-preview
profile: minimal
override: true

- name: Install dependencies
run: pnpm install
- name: Build
Expand Down Expand Up @@ -96,140 +103,162 @@ jobs:
key: lerna-${{ runner.os }}
path: ./.cache
restore-keys: lerna-${{ runner.os }}-
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: llvm-tools-preview
profile: minimal
override: true
- name: Install cargo-llvm-cov
run: cargo install cargo-llvm-cov
- name: Check rustc version
run: rustc --version
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Test api
run: cd packages/api && pnpm run test
run: cd packages/api && pnpm run test:coverage
- name: Test api-common
run: cd packages/api-common && pnpm run test
run: cd packages/api-common && pnpm run test:coverage
- name: Test api-database
run: cd packages/api-database && pnpm run test
run: cd packages/api-database && pnpm run test:coverage
- name: Test api-development
run: cd packages/api-development && pnpm run test
run: cd packages/api-development && pnpm run test:coverage
- name: Test api-evm
run: cd packages/api-evm && pnpm run test
run: cd packages/api-evm && pnpm run test:coverage
- name: Test api-http
run: cd packages/api-http && pnpm run test
run: cd packages/api-http && pnpm run test:coverage
- name: Test api-sync
run: cd packages/api-sync && pnpm run test
run: cd packages/api-sync && pnpm run test:coverage
- name: Test api-transaction-pool
run: cd packages/api-transaction-pool && pnpm run test
run: cd packages/api-transaction-pool && pnpm run test:coverage
- name: Test blockchain-utils
run: cd packages/blockchain-utils && pnpm run test
run: cd packages/blockchain-utils && pnpm run test:coverage
- name: Test bootstrap
run: cd packages/bootstrap && pnpm run test
run: cd packages/bootstrap && pnpm run test:coverage
- name: Test cli
run: cd packages/cli && pnpm run test
run: cd packages/cli && pnpm run test:coverage
- name: Test configuration-generator
run: cd packages/configuration-generator && pnpm run test
run: cd packages/configuration-generator && pnpm run test:coverage
- name: Test consensus
run: cd packages/consensus && pnpm run test
run: cd packages/consensus && pnpm run test:coverage
- name: Test consensus-storage
run: cd packages/consensus-storage && pnpm run test
run: cd packages/consensus-storage && pnpm run test:coverage
- name: Test container
run: cd packages/container && pnpm run test
run: cd packages/container && pnpm run test:coverage
- name: Test contracts
run: cd packages/contracts && pnpm run test
run: cd packages/contracts && pnpm run test:coverage
- name: Test core
run: cd packages/core && pnpm run test
run: cd packages/core && pnpm run test:coverage
- name: Test crypto-address-base58
run: cd packages/crypto-address-base58 && pnpm run test
run: cd packages/crypto-address-base58 && pnpm run test:coverage
- name: Test crypto-address-keccak256
run: cd packages/crypto-address-keccak256 && pnpm run test
run: cd packages/crypto-address-keccak256 && pnpm run test:coverage
- name: Test crypto-block
run: cd packages/crypto-block && pnpm run test
run: cd packages/crypto-block && pnpm run test:coverage
- name: Test crypto-commit
run: cd packages/crypto-commit && pnpm run test
run: cd packages/crypto-commit && pnpm run test:coverage
- name: Test crypto-config
run: cd packages/crypto-config && pnpm run test
run: cd packages/crypto-config && pnpm run test:coverage
- name: Test crypto-consensus-bls12-381
run: cd packages/crypto-consensus-bls12-381 && pnpm run test
run: cd packages/crypto-consensus-bls12-381 && pnpm run test:coverage
- name: Test crypto-hash-bcrypto
run: cd packages/crypto-hash-bcrypto && pnpm run test
run: cd packages/crypto-hash-bcrypto && pnpm run test:coverage
- name: Test crypto-key-pair-bls12-381
run: cd packages/crypto-key-pair-bls12-381 && pnpm run test
run: cd packages/crypto-key-pair-bls12-381 && pnpm run test:coverage
- name: Test crypto-key-pair-ecdsa
run: cd packages/crypto-key-pair-ecdsa && pnpm run test
run: cd packages/crypto-key-pair-ecdsa && pnpm run test:coverage
- name: Test crypto-key-pair-ed25519
run: cd packages/crypto-key-pair-ed25519 && pnpm run test
run: cd packages/crypto-key-pair-ed25519 && pnpm run test:coverage
- name: Test crypto-key-pair-schnorr
run: cd packages/crypto-key-pair-schnorr && pnpm run test
run: cd packages/crypto-key-pair-schnorr && pnpm run test:coverage
- name: Test crypto-messages
run: cd packages/crypto-messages && pnpm run test
run: cd packages/crypto-messages && pnpm run test:coverage
- name: Test crypto-signature-bls12-381
run: cd packages/crypto-signature-bls12-381 && pnpm run test
run: cd packages/crypto-signature-bls12-381 && pnpm run test:coverage
- name: Test crypto-signature-ecdsa
run: cd packages/crypto-signature-ecdsa && pnpm run test
run: cd packages/crypto-signature-ecdsa && pnpm run test:coverage
- name: Test crypto-signature-schnorr
run: cd packages/crypto-signature-schnorr && pnpm run test
run: cd packages/crypto-signature-schnorr && pnpm run test:coverage
- name: Test crypto-transaction
run: cd packages/crypto-transaction && pnpm run test
run: cd packages/crypto-transaction && pnpm run test:coverage
- name: Test crypto-transaction-evm-call
run: cd packages/crypto-transaction-evm-call && pnpm run test
run: cd packages/crypto-transaction-evm-call && pnpm run test:coverage
- name: Test crypto-validation
run: cd packages/crypto-validation && pnpm run test
run: cd packages/crypto-validation && pnpm run test:coverage
- name: Test crypto-wif
run: cd packages/crypto-wif && pnpm run test
run: cd packages/crypto-wif && pnpm run test:coverage
- name: Test crypto-worker
run: cd packages/crypto-worker && pnpm run test
run: cd packages/crypto-worker && pnpm run test:coverage
- name: Test database
run: cd packages/database && pnpm run test
# - name: Test evm
# run: cd packages/evm && pnpm run test
run: cd packages/database && pnpm run test:coverage
- name: Test evm
run: cd packages/evm && pnpm run test:coverage
- name: Test evm-api-worker
run: cd packages/evm-api-worker && pnpm run test
run: cd packages/evm-api-worker && pnpm run test:coverage
- name: Test evm-consensus
run: cd packages/evm-consensus && pnpm run test
run: cd packages/evm-consensus && pnpm run test:coverage
- name: Test evm-service
run: cd packages/evm-service && pnpm run test
run: cd packages/evm-service && pnpm run test:coverage
- name: Test evm-state
run: cd packages/evm-state && pnpm run test
run: cd packages/evm-state && pnpm run test:coverage
- name: Test kernel
run: cd packages/kernel && pnpm run test
run: cd packages/kernel && pnpm run test:coverage
- name: Test logger-pino
run: cd packages/logger-pino && pnpm run test
run: cd packages/logger-pino && pnpm run test:coverage
- name: Test logger-winston
run: cd packages/logger-winston && pnpm run test
run: cd packages/logger-winston && pnpm run test:coverage
- name: Test networking-dns
run: cd packages/networking-dns && pnpm run test
run: cd packages/networking-dns && pnpm run test:coverage
- name: Test networking-ntp
run: cd packages/networking-ntp && pnpm run test
run: cd packages/networking-ntp && pnpm run test:coverage
- name: Test p2p
run: cd packages/p2p && pnpm run test
run: cd packages/p2p && pnpm run test:coverage
- name: Test processor
run: cd packages/processor && pnpm run test
run: cd packages/processor && pnpm run test:coverage
- name: Test serializer
run: cd packages/serializer && pnpm run test
run: cd packages/serializer && pnpm run test:coverage
- name: Test snapshot-legacy-exporter
run: cd packages/snapshot-legacy-exporter && pnpm run test
run: cd packages/snapshot-legacy-exporter && pnpm run test:coverage
- name: Test snapshot-legacy-importer
run: cd packages/snapshot-legacy-importer && pnpm run test
run: cd packages/snapshot-legacy-importer && pnpm run test:coverage
- name: Test state
run: cd packages/state && pnpm run test
run: cd packages/state && pnpm run test:coverage
- name: Test test-framework
run: cd packages/test-framework && pnpm run test
run: cd packages/test-framework && pnpm run test:coverage
- name: Test test-runner
run: cd packages/test-runner && pnpm run test
run: cd packages/test-runner && pnpm run test:coverage
- name: Test test-transaction-builders
run: cd packages/test-transaction-builders && pnpm run test
run: cd packages/test-transaction-builders && pnpm run test:coverage
- name: Test transaction-pool-broadcaster
run: cd packages/transaction-pool-broadcaster && pnpm run test
run: cd packages/transaction-pool-broadcaster && pnpm run test:coverage
- name: Test transaction-pool-service
run: cd packages/transaction-pool-service && pnpm run test
run: cd packages/transaction-pool-service && pnpm run test:coverage
- name: Test transaction-pool-worker
run: cd packages/transaction-pool-worker && pnpm run test
run: cd packages/transaction-pool-worker && pnpm run test:coverage
- name: Test transactions
run: cd packages/transactions && pnpm run test
run: cd packages/transactions && pnpm run test:coverage
- name: Test utils
run: cd packages/utils && pnpm run test
run: cd packages/utils && pnpm run test:coverage
- name: Test validation
run: cd packages/validation && pnpm run test
run: cd packages/validation && pnpm run test:coverage
- name: Test validator
run: cd packages/validator && pnpm run test
run: cd packages/validator && pnpm run test:coverage
- name: Test webhooks
run: cd packages/webhooks && pnpm run test
run: cd packages/webhooks && pnpm run test:coverage

- name: Merge test coverage reports
run: pnpm run test:unit:merge

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
if: ${{ secrets.CODECOV_TOKEN != '' }}
with:
Comment thread
sebastijankuzner marked this conversation as resolved.
files: ./merged-lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
slug: ArkEcosystem/mainsail
flags: packages

integration:
needs:
Expand Down Expand Up @@ -297,7 +326,7 @@ jobs:
group: ${{ github.head_ref }}-e2e-${{ matrix.name }}
runs-on: ubuntu-latest

timeout-minutes: 10
timeout-minutes: 15

strategy:
matrix:
Expand Down Expand Up @@ -442,7 +471,7 @@ jobs:
group: ${{ github.head_ref }}-e2e-${{ matrix.name }}
runs-on: ubuntu-latest

timeout-minutes: 10
timeout-minutes: 15

strategy:
matrix:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ lib-cov
# Coverage directory used by tools like istanbul
.coverage
**/coverage
lcov.info
merged-lcov.info

# nyc test coverage
.nyc_output
Expand Down
5 changes: 5 additions & 0 deletions contracts/coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

forge coverage --report lcov
sed -n '/^SF:test\//!p;/^SF:test\//q' lcov.info > filtered-lcov.info
mv filtered-lcov.info lcov.info
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,11 @@
"setup": "pnpm install && pnpm run build",
"sort": "sort-package-json \"package.json\" \"packages/*/package.json\"",
"sort:dry": "sort-package-json --check \"package.json\" \"packages/*/package.json\"",
"test:contracts:coverage": "cd contracts && bash coverage.sh",
"test:integration": "lerna run test:integration --parallel",
"test:unit": "lerna run test --parallel",
"test:unit:coverage": "lerna run test:coverage --parallel",
"test:unit:merge": "bash scripts/development/create-lcov-report.sh",
"version": "lerna version --no-git-tag-version --yes",
"workflows:unit": "node scripts/generate-unit-workflow.js"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/api-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/api-database/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"typeorm": "typeorm",
Expand Down
2 changes: 1 addition & 1 deletion packages/api-development/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/api-evm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/api-http/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"test:integration": "pnpm run uvu integration .test.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/api-sync/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/api-transaction-pool/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"clean": "del distribution",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"mainsail-api": "node ./bin/run.js",
"release": "pnpm publish --access public",
"test": "pnpm run uvu source .test.ts",
"test:coverage": "c8 pnpm run test",
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
"test:coverage:html": "c8 -r html --all pnpm run test",
"test:file": "pnpm run uvu source",
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
Expand Down
Loading
Loading