refactor(kernel): remove force termination #20
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |