Skip to content

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

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

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

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
- 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: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: deps-node-modules-${{ hashFiles('package-lock.json') }}
- 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 Core SDK
uses: actions/upload-artifact@v3
with:
name: core-sdk
path: |
package.json
dist
src/sdks/core
- name: Upload Manage SDK
uses: actions/upload-artifact@v3
with:
name: manage-sdk
path: |
package.json
dist
src/sdks/manage
- name: Upload Discovery SDK
uses: actions/upload-artifact@v3
with:
name: discovery-sdk
path: |
package.json
dist
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: Show core sdk
run: ls -la /__w/core-sdk/
- 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: |
cd /__w/core-sdk/
npm 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:
- 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: Install npm dependencies
run: |
cd /__w/manage-sdk/
npm install
- name: Build CXX manage SDK
run: |
.github/workflows/utils.sh buildManageCPPSDK
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-sdk
path: /__w/discovery-sdk/
- name: Download Thunder
uses: actions/download-artifact@v3
with:
name: thunder
path: /__w/thunder/install/
- name: Install npm dependencies
run: |
cd /__w/discovery-sdk/
npm install
- name: Build CXX Discovery SDK
run: |
.github/workflows/utils.sh buildDiscoveryCPPSDK
#==============================================================
# - 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/