Coverage reports for Node.js + Common packages #864
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: 'tests' | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**/*.md' | |
- 'LICENSE' | |
- 'benchmarks/**' | |
- 'examples/**' | |
pull_request: | |
paths-ignore: | |
- '**/*.md' | |
- 'LICENSE' | |
- 'benchmarks/**' | |
- 'examples/**' | |
schedule: | |
- cron: '0 9 * * *' | |
jobs: | |
node-unit-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
node: [18, 20, 21] | |
steps: | |
- uses: actions/checkout@main | |
- name: Setup NodeJS ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Install dependencies (examples) | |
working-directory: examples | |
run: | | |
npm install | |
- name: Run linting | |
run: | | |
npm run lint | |
- name: Typecheck | |
run: | | |
npm run typecheck | |
- name: Run unit tests | |
run: | | |
npm run test:node:unit | |
web-all-tests-local-single-node: | |
runs-on: ubuntu-latest | |
needs: node-unit-tests | |
strategy: | |
fail-fast: true | |
matrix: | |
clickhouse: [head, latest] | |
steps: | |
- uses: actions/checkout@main | |
- name: Start ClickHouse (version - ${{ matrix.clickhouse }}) in Docker | |
uses: isbang/compose-action@v1.5.1 | |
env: | |
CLICKHOUSE_VERSION: ${{ matrix.clickhouse }} | |
with: | |
compose-file: 'docker-compose.yml' | |
down-flags: '--volumes' | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run all web tests | |
run: | | |
npm run test:web | |
# With unit tests + coverage, avoiding an extra run for that | |
node-integration-tests-local-single-node: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
node: [18, 20, 21] | |
clickhouse: [head, latest] | |
steps: | |
- uses: actions/checkout@main | |
- name: Start ClickHouse (version - ${{ matrix.clickhouse }}) in Docker | |
uses: isbang/compose-action@v1.5.1 | |
env: | |
CLICKHOUSE_VERSION: ${{ matrix.clickhouse }} | |
with: | |
compose-file: 'docker-compose.yml' | |
down-flags: '--volumes' | |
- name: Setup NodeJS ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Add ClickHouse TLS instance to /etc/hosts | |
run: | | |
sudo echo "127.0.0.1 server.clickhouseconnect.test" | sudo tee -a /etc/hosts | |
- name: Run unit + integration + TLS tests with coverage | |
run: | | |
npm run test:node:coverage | |
- name: SonarCloud Scan | |
uses: SonarSource/sonarcloud-github-action@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
node-integration-tests-local-cluster: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
node: [18, 20, 21] | |
clickhouse: [head, latest] | |
steps: | |
- uses: actions/checkout@main | |
- name: Start ClickHouse cluster (version - ${{ matrix.clickhouse }}) in Docker | |
uses: isbang/compose-action@v1.5.1 | |
env: | |
CLICKHOUSE_VERSION: ${{ matrix.clickhouse }} | |
with: | |
compose-file: 'docker-compose.cluster.yml' | |
down-flags: '--volumes' | |
- name: Setup NodeJS ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run integration tests | |
run: | | |
npm run test:node:integration:local_cluster | |
web-integration-tests-local-cluster: | |
runs-on: ubuntu-latest | |
needs: node-unit-tests | |
strategy: | |
fail-fast: true | |
matrix: | |
clickhouse: [head, latest] | |
steps: | |
- uses: actions/checkout@main | |
- name: Start ClickHouse cluster (version - ${{ matrix.clickhouse }}) in Docker | |
uses: isbang/compose-action@v1.5.1 | |
env: | |
CLICKHOUSE_VERSION: ${{ matrix.clickhouse }} | |
with: | |
compose-file: 'docker-compose.cluster.yml' | |
down-flags: '--volumes' | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run all web tests | |
run: | | |
npm run test:web:integration:local_cluster | |
node-integration-tests-cloud: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
node: [18, 20, 21] | |
steps: | |
- uses: actions/checkout@main | |
- name: Setup NodeJS ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run integration tests | |
env: | |
CLICKHOUSE_CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST }} | |
CLICKHOUSE_CLOUD_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD }} | |
run: | | |
npm run test:node:integration:cloud | |
node-integration-tests-cloud-smt: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
node: [18, 20, 21] | |
steps: | |
- uses: actions/checkout@main | |
- name: Setup NodeJS ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run integration tests | |
env: | |
CLICKHOUSE_CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST_SMT }} | |
CLICKHOUSE_CLOUD_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD_SMT }} | |
run: | | |
npm run test:node:integration:cloud_smt | |
web-integration-tests-cloud: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
permissions: write-all | |
steps: | |
- uses: actions/checkout@main | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run integration tests | |
env: | |
CLICKHOUSE_CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST }} | |
CLICKHOUSE_CLOUD_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD }} | |
run: | | |
npm run test:web:integration:cloud | |
web-integration-tests-cloud-smt: | |
needs: node-unit-tests | |
runs-on: ubuntu-latest | |
permissions: write-all | |
steps: | |
- uses: actions/checkout@main | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
npm install | |
- name: Run integration tests | |
env: | |
CLICKHOUSE_CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST_SMT }} | |
CLICKHOUSE_CLOUD_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD_SMT }} | |
run: | | |
npm run test:web:integration:cloud_smt |