Skip to content

refactor(kernel): remove force termination #20

refactor(kernel): remove force termination

refactor(kernel): remove force termination #20

Workflow file for this run

name: Test
on:
pull_request:
types:
- ready_for_review
- synchronize
- opened
push:
branches:
- main
- develop
jobs:
build:
strategy:
matrix:
node-version:
- 20.x
concurrency:
cancel-in-progress: true
group: ${{ github.head_ref }}-unit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Cache lerna
uses: actions/cache@v4
with:
key: lerna-${{ runner.os }}-${{ github.run_id }}
path: ./.cache
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
unit:
needs:
- build
strategy:
matrix:
node-version:
- 20.x
concurrency:
cancel-in-progress: true
group: ${{ github.head_ref }}-unit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Cache lerna
uses: actions/cache@v4
with:
key: lerna-${{ runner.os }}
path: ./.cache
restore-keys: lerna-${{ runner.os }}-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Test api
run: cd packages/api && pnpm run test
- name: Test api-common
run: cd packages/api-common && pnpm run test
- name: Test api-database
run: cd packages/api-database && pnpm run test
- name: Test api-development
run: cd packages/api-development && pnpm run test
- name: Test api-evm
run: cd packages/api-evm && pnpm run test
- name: Test api-http
run: cd packages/api-http && pnpm run test
- name: Test api-sync
run: cd packages/api-sync && pnpm run test
- name: Test api-transaction-pool
run: cd packages/api-transaction-pool && pnpm run test
- name: Test bootstrap
run: cd packages/bootstrap && pnpm run test
- name: Test cli
run: cd packages/cli && pnpm run test
- name: Test configuration-generator
run: cd packages/configuration-generator && pnpm run test
# - name: Test consensus
# run: cd packages/consensus && pnpm run test
- name: Test consensus-storage
run: cd packages/consensus-storage && pnpm run test
- name: Test container
run: cd packages/container && pnpm run test
- name: Test contracts
run: cd packages/contracts && pnpm run test
- name: Test core
run: cd packages/core && pnpm run test
- name: Test crypto-address-base58
run: cd packages/crypto-address-base58 && pnpm run test
- name: Test crypto-address-keccak256
run: cd packages/crypto-address-keccak256 && pnpm run test
- name: Test crypto-block
run: cd packages/crypto-block && pnpm run test
- name: Test crypto-commit
run: cd packages/crypto-commit && pnpm run test
- name: Test crypto-config
run: cd packages/crypto-config && pnpm run test
- name: Test crypto-consensus-bls12-381
run: cd packages/crypto-consensus-bls12-381 && pnpm run test
- name: Test crypto-hash-bcrypto
run: cd packages/crypto-hash-bcrypto && pnpm run test
- name: Test crypto-key-pair-bls12-381
run: cd packages/crypto-key-pair-bls12-381 && pnpm run test
- name: Test crypto-key-pair-ecdsa
run: cd packages/crypto-key-pair-ecdsa && pnpm run test
- name: Test crypto-key-pair-ed25519
run: cd packages/crypto-key-pair-ed25519 && pnpm run test
- name: Test crypto-key-pair-schnorr
run: cd packages/crypto-key-pair-schnorr && pnpm run test
- name: Test crypto-messages
run: cd packages/crypto-messages && pnpm run test
- name: Test crypto-signature-bls12-381
run: cd packages/crypto-signature-bls12-381 && pnpm run test
- name: Test crypto-signature-ecdsa
run: cd packages/crypto-signature-ecdsa && pnpm run test
- name: Test crypto-signature-schnorr
run: cd packages/crypto-signature-schnorr && pnpm run test
- name: Test crypto-transaction
run: cd packages/crypto-transaction && pnpm run test
- name: Test crypto-transaction-evm-call
run: cd packages/crypto-transaction-evm-call && pnpm run test
- name: Test crypto-validation
run: cd packages/crypto-validation && pnpm run test
- name: Test crypto-wif
run: cd packages/crypto-wif && pnpm run test
- name: Test crypto-worker
run: cd packages/crypto-worker && pnpm run test
- name: Test database
run: cd packages/database && pnpm run test
# - name: Test evm
# run: cd packages/evm && pnpm run test
- name: Test evm-api-worker
run: cd packages/evm-api-worker && pnpm run test
- name: Test evm-consensus
run: cd packages/evm-consensus && pnpm run test
- name: Test evm-development
run: cd packages/evm-development && pnpm run test
- name: Test evm-gas-fee
run: cd packages/evm-gas-fee && pnpm run test
- name: Test evm-service
run: cd packages/evm-service && pnpm run test
- name: Test evm-state
run: cd packages/evm-state && pnpm run test
- name: Test kernel
run: cd packages/kernel && pnpm run test
- name: Test logger-pino
run: cd packages/logger-pino && pnpm run test
- name: Test logger-winston
run: cd packages/logger-winston && pnpm run test
- name: Test networking-dns
run: cd packages/networking-dns && pnpm run test
- name: Test networking-ntp
run: cd packages/networking-ntp && pnpm run test
- name: Test p2p
run: cd packages/p2p && pnpm run test
- name: Test processor
run: cd packages/processor && pnpm run test
- name: Test serializer
run: cd packages/serializer && pnpm run test
# - name: Test state
# run: cd packages/state && pnpm run test
- name: Test test-framework
run: cd packages/test-framework && pnpm run test
- name: Test test-runner
run: cd packages/test-runner && pnpm run test
- name: Test test-transaction-builders
run: cd packages/test-transaction-builders && pnpm run test
- name: Test transaction-pool-broadcaster
run: cd packages/transaction-pool-broadcaster && pnpm run test
- name: Test transaction-pool-service
run: cd packages/transaction-pool-service && pnpm run test
- name: Test transaction-pool-worker
run: cd packages/transaction-pool-worker && pnpm run test
- name: Test transactions
run: cd packages/transactions && pnpm run test
- name: Test utils
run: cd packages/utils && pnpm run test
- name: Test validation
run: cd packages/validation && pnpm run test
# - name: Test validator
# run: cd packages/validator && pnpm run test
- name: Test webhooks
run: cd packages/webhooks && pnpm run test
integration:
needs:
- build
strategy:
matrix:
node-version:
- 20.x
concurrency:
cancel-in-progress: true
group: ${{ github.head_ref }}-integration
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: test_db
POSTGRES_USER: test_db
POSTGRES_PASSWORD: password
ports:
- 127.0.0.1:5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Cache lerna
uses: actions/cache@v4
with:
key: lerna-${{ runner.os }}
path: ./.cache
restore-keys: lerna-${{ runner.os }}-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Test api-http
run: cd packages/api-http && pnpm run test:integration
e2e:
needs:
- build
concurrency:
cancel-in-progress: true
group: ${{ github.head_ref }}-e2e-${{ matrix.name }}
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
matrix:
node-version: [20.x]
name: ["consensus"]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Cache lerna
uses: actions/cache@v4
with:
key: lerna-${{ runner.os }}
path: ./.cache
restore-keys: lerna-${{ runner.os }}-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Docker ${{ matrix.name }}
run: sudo chmod -R 777 tests/e2e/${{ matrix.name }}/nodes && cd tests/e2e/${{ matrix.name }} && docker compose up -d
- name: Running checks for ${{ matrix.name }}
run: |
container_id=$(docker ps -a | grep 'consensus-checks' | awk '{print $1}')
while docker ps | grep -q $container_id; do echo "checks running..."; sleep 5; done
exit_code=$(docker container inspect $container_id --format='{{.State.ExitCode}}')
if [ "$exit_code" != "0" ]; then
echo "Error: checks exited with code $exit_code"
exit 1
fi
- name: Show logs - node0
if: always()
run: docker logs consensus-node0-1
- name: Show logs - node1
if: always()
run: docker logs consensus-node1-1
- name: Show logs - node2
if: always()
run: docker logs consensus-node2-1
- name: Show logs - node3
if: always()
run: docker logs consensus-node3-1
- name: Show logs - node4
if: always()
run: docker logs consensus-node4-1