Skip to content

fixup! chore: CI to test CPP SDK #238

fixup! chore: CI to test CPP SDK

fixup! chore: CI to test CPP SDK #238

Workflow file for this run

# name: CXX build
# on:
# repository_dispatch:
# types: [trigger-workflow]
# workflow_dispatch:
# push:
# branches:
# - 'chore/cpp-ci-unit-coverage-report'
# pull_request:
# branches:
# - 'main'
# - 'next'
# types:
# - opened
# - synchronize
# env:
# HUSKY: 0
# jobs:
# thunder:
# name: Build Thunder Libraries
# runs-on: ubuntu-latest
# container:
# image: kevinshahfws/node-c:3.0
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Clone and Install Thunder
# id: install_thunder
# run: |
# .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
# runs-on: ubuntu-latest
# container:
# image: kevinshahfws/node-c:3.0
# 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: kevinshahfws/node-c: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: Firebolt Openrpc
# run: |
# mkdir -p /__w/openrpc
# cd /__w/openrpc
# git init
# git remote add -f origin https://github.com/rdkcentral/firebolt-openrpc.git
# git config core.sparseCheckout true
# echo "languages/cpp/src/shared/CMakeLists.txt" >> .git/info/sparse-checkout
# git pull origin chore/cpp-ci-unit-covorage-report
# - name: Cache npm dependencies
# uses: actions/cache@v3
# with:
# path: ~/.npm
# key: deps-node-modules-${{ hashFiles('package-lock.json') }}
# - name: Install npm dependencies
# run: 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: |
# .github/workflows/utils.sh build_core_cpp_sdk
# - name: Test CXX Core SDK
# run: |
# .github/workflows/utils.sh test_core_cpp_sdk
# manage_sdk:
# name: Build Manage SDK
# needs: [thunder, openrpc]
# runs-on: ubuntu-latest
# container:
# image: kevinshahfws/node-c: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: 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: |
# .github/workflows/utils.sh build_manage_cpp_sdk
# dicovery_sdk:
# name: Build Discovery SDK
# needs: [thunder, openrpc]
# runs-on: ubuntu-latest
# container:
# image: kevinshahfws/node-c: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: 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: |
# .github/workflows/utils.sh build_discovery_cpp_sdk
name: CXX build
on:
repository_dispatch:
types: [trigger-workflow]
workflow_dispatch:
push:
branches:
- 'chore/cpp-ci-unit-coverage-report'
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:latest
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:latest
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
core_sdk:
name: Build Core SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: node:latest
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: Firebolt Openrpc
run: |
mkdir -p /__w/openrpc
cd /__w/openrpc
git init
git remote add -f origin https://github.com/rdkcentral/firebolt-openrpc.git
git config core.sparseCheckout true
echo "languages/cpp/src/shared/CMakeLists.txt" >> .git/info/sparse-checkout
echo "languages/cpp/src/shared/cmake/CodeCoverage.cmake" >> .git/info/sparse-checkout
git pull origin chore/cpp-ci-unit-covorage-report
- 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
shell: bash
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 CXX Core SDK
run: .github/workflows/utils.sh test_core_cpp_sdk
continue-on-error: true
- 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: true
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: '10 20'
- name: Add coverage PR comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request' || github.event_name == 'push'
with:
recreate: true
path: code-coverage-results.md