Skip to content

fixup! feat(core): CI pipeline to build and test CPP SDK #20

fixup! feat(core): CI pipeline to build and test CPP SDK

fixup! feat(core): CI pipeline to build and test CPP SDK #20

Workflow file for this run

name: CXX build
on:
workflow_dispatch:
push:
branches:
- 'main'
- 'next'
- 'feature/cxx-build-workflow'
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
pwd
ls /home
- 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:
# Checkout/install project
- 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 }} # <-- allow npm publish for each workspace
run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc'
- name: Install dependencies
run: npm ci
# Set file permissions
- name: Set file permissions
run: |
chmod -R 755 ./
chown -R $(id -u):$(id -g) ./
- name: Build Artifacts
run: |
npm run dist
- name: Upload the core sdk artifact
uses: actions/upload-artifact@v3
with:
name: core-sdk
path: /__w/firebolt-apis/firebolt-apis/src/sdks/core
- name: Upload the manage sdk artifact
uses: actions/upload-artifact@v3
with:
name: manage-sdk
path: /__w/firebolt-apis/firebolt-apis/src/sdks/manage
- name: Upload the discovery sdk artifact
uses: actions/upload-artifact@v3
with:
name: discovery-sdk
path: /__w/firebolt-apis/firebolt-apis/src/sdks/discovery
core_sdk:
name: Build Core SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: kevinshahfws/node-c:3.0
steps:
# Checkout/install project
- name: Checkout
uses: actions/checkout@v2
- name: Download Core SDK
uses: actions/download-artifact@v3
with:
name: core-sdk
path: /__w/core-sdk/
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Build CXX Core SDK
run: |
.github/workflows/utils.sh buildCoreCPPSDK
manage_sdk:
name: Build Manage SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: kevinshahfws/node-c:3.0
steps:
# Checkout/install project
- name: Checkout
uses: actions/checkout@v2
- name: Download Manage SDK
uses: actions/download-artifact@v3
with:
name: manage-sdk
path: /__w/manage-sdk/
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Build CXX manage SDK
run: |
.github/workflows/utils.sh buildManageCPPSDK
dicovery_sdk:
name: Build Dicovery SDK
needs: [thunder, openrpc]
runs-on: ubuntu-latest
container:
image: kevinshahfws/node-c:3.0
steps:
# Checkout/install project
- name: Checkout
uses: actions/checkout@v2
- name: Download Dicovery SDK
uses: actions/download-artifact@v3
with:
name: dicovery-sdk
path: /__w/dicovery-sdk/
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Build CXX Dicovery SDK
run: |
.github/workflows/utils.sh buildDicoveryCPPSDK
# - name: Install Gcovr
# run: |
# apt remove --purge gcovr -y
# pip install --upgrade gcovr
# - name: Setup Node.js
# uses: actions/setup-node@v2
# with:
# node-version: 'lts/*'
# - name: Install dependencies
# run: npm ci
# - name: Clone and Install Thunder
# id: install_thunder
# run: |
# .github/workflows/utils.sh cloneAndInstallThunder
# - name: Build Artifacts
# run: |
# npm run dist
# - name: Build CXX
# run: |
# cd src/sdks/core/
# ls
# npm run cpp
# - name: Build SDK
# run: |
# tar -zxvf src/sdks/core/build/cpp/src/firebolt-core-native-sdk-1.3.0-next.1.tgz -C ../
# cd ../firebolt-core-native-sdk-1.3.0-next.1
# cp -f ../firebolt-apis/external/CMakeLists.txt ./
# cp -f ../firebolt-apis/external/include/json_engine.h ./include/
# cp -f ../firebolt-apis/external/src/CMakeLists.txt ./src/
# cp -f ../firebolt-apis/external/src/Transport.h ./src/
# ./build.sh -s ${pwd}/../install
# ls build/test/
# ctest --test-dir build/