Skip to content

chore: CPP CI Unit Test Coverage Report #274

chore: CPP CI Unit Test Coverage Report

chore: CPP CI Unit Test Coverage Report #274

Workflow file for this run

name: CXX build
on:
repository_dispatch:
types: [trigger-workflow]
workflow_dispatch:
pull_request:
branches:
- 'main'
- 'next'
types:
- opened
- synchronize
defaults:
run:
shell: bash
env:
HUSKY: 0
jobs:
thunder:
name: Build Thunder Libraries
runs-on: ubuntu-latest
container:
image: node:23.3.0
steps:
- name: Checkout firebolt-apis
uses: actions/checkout@v2
- name: Clone and Install Thunder
run: |
apt update
apt install -y cmake ninja-build python3-pip python3.11-venv
python3 -m venv firebolt-env
source firebolt-env/bin/activate
pip install jsonref
.github/workflows/utils.sh cloneAndInstallThunder
- name: Upload the library artifact
uses: actions/upload-artifact@v3
with:
name: thunder
path: /__w/firebolt-apis/install/
openrpc:
name: Build Openrpc Artifacts
needs: thunder
runs-on: ubuntu-latest
container:
image: node:23.3.0
permissions:
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
repo-token: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }}
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 'lts/*'
- name: Set up NPM token
env:
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }}
run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc'
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: deps-node-modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
run: npm install
- name: Set file permissions
run: |
chmod -R 755 ./
chown -R $(id -u):$(id -g) ./
- name: Build Artifacts
run: |
npm run dist
- name: Upload Core SDK
uses: actions/upload-artifact@v3
with:
name: core
path: src/sdks/core
- name: Upload Manage SDK
uses: actions/upload-artifact@v3
with:
name: manage
path: src/sdks/manage
- name: Upload Discovery SDK
uses: actions/upload-artifact@v3
with:
name: discovery
path: src/sdks/discovery
core_sdk:
name: Build Core SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: node:23.3.0
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Core SDK
uses: actions/download-artifact@v3
with:
name: core
path: /__w/firebolt-apis/firebolt-apis/src/sdks/core
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: deps-node-modules-${{ hashFiles('package-lock.json') }}
- name: Install npm dependencies
run: |
apt update
apt install -y cmake
npm install
- name: Generate core SDK source code
run: |
.github/workflows/utils.sh generate_cpp_core_sdk_source_code
- name: Build CXX Core SDK
run: |
apt install -y python3-pip python3.11-venv
python3 -m venv firebolt-env
source firebolt-env/bin/activate
pip install gcovr
.github/workflows/utils.sh build_core_cpp_sdk
- name: Test and Generate coverage report
run: .github/workflows/utils.sh generate_core_sdk_coverage_report
- name: Display coverage report
uses: irongut/[email protected]
with:
filename: coverage/coverage.cobertura.xml
badge: true
fail_below_min: false
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: '80 40'
- name: Add coverage PR comment
uses: marocchino/sticky-pull-request-comment@v2
with:
recreate: true
path: code-coverage-results.md
manage_sdk:
name: Build Manage SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: node:23.3.0
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Manage SDK
uses: actions/download-artifact@v3
with:
name: manage
path: /__w/firebolt-apis/firebolt-apis/src/sdks/manage
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: deps-node-modules-${{ hashFiles('package-lock.json') }}
- name: Install npm dependencies
run: |
apt update
apt install -y cmake
npm install
- name: Generate manage SDK source code
run: |
.github/workflows/utils.sh generate_cpp_manage_sdk_source_code
- name: Build CXX Manage SDK
run: |
apt install -y python3-pip python3.11-venv
python3 -m venv firebolt-env
source firebolt-env/bin/activate
pip install gcovr
.github/workflows/utils.sh build_manage_cpp_sdk
- name: Test and Generate coverage report
run: .github/workflows/utils.sh generate_manage_sdk_coverage_report
- name: Display coverage report
uses: irongut/[email protected]
with:
filename: coverage/coverage.cobertura.xml
badge: true
fail_below_min: false
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: '80 40'
- name: Add coverage PR comment
uses: marocchino/sticky-pull-request-comment@v2
with:
recreate: true
path: code-coverage-results.md
discovery_sdk:
name: Build Discovery SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: node:23.3.0
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Discovery SDK
uses: actions/download-artifact@v3
with:
name: discovery
path: /__w/firebolt-apis/firebolt-apis/src/sdks/discovery
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: deps-node-modules-${{ hashFiles('package-lock.json') }}
- name: Install npm dependencies
run: |
apt update
apt install -y cmake
npm install
- name: Generate discovery SDK source code
run: |
.github/workflows/utils.sh generate_cpp_discovery_sdk_source_code
- name: Build CXX Discovery SDK
run: |
apt install -y python3-pip python3.11-venv
python3 -m venv firebolt-env
source firebolt-env/bin/activate
pip install gcovr
.github/workflows/utils.sh build_discovery_cpp_sdk
- name: Test and Generate coverage report
run: .github/workflows/utils.sh generate_discovery_sdk_coverage_report
- name: Display coverage report
uses: irongut/[email protected]
with:
filename: coverage/coverage.cobertura.xml
badge: true
fail_below_min: false
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: '80 40'
- name: Add coverage PR comment
uses: marocchino/sticky-pull-request-comment@v2
with:
recreate: true
path: code-coverage-results.md