Skip to content

[DEVOPS-1748] Build pipeline for C++ sdk #9

[DEVOPS-1748] Build pipeline for C++ sdk

[DEVOPS-1748] Build pipeline for C++ sdk #9

Workflow file for this run

name: Build C++ SDK
on:
push:
branches:
- main
- rc
- hotfix-rc
pull_request:
workflow_dispatch:
jobs:
generate-schemas:
uses: ./.github/workflows/generate_schemas.yml
build_rust:
uses: ./.github/workflows/build-rust-cross-platform.yml
build:
name: Build for ${{ matrix.settings.os }} ${{ matrix.settings.target }}
needs:
- generate-schemas
- build_rust
runs-on: ${{ matrix.settings.os }}
strategy:
fail-fast: false
matrix:
settings:
- os: macos-12
target: x86_64-apple-darwin
- os: macos-12
target: aarch64-apple-darwin
- os: windows-2022
target: x86_64-pc-windows-msvc
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
steps:
- name: Checkout Repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: install dependencies linux
if: matrix.settings.os == 'ubuntu-22.04'
run: |
sudo apt-get install -y nlohmann-json3-dev
sudo apt-get install -y libboost-all-dev
- name: install dependencies macos
if: matrix.settings.os == 'macos-12'
run: |
brew install nlohmann-json
brew install boost
- name: install dependencies windows
if: matrix.settings.os == 'windows-2022'
run: |
choco install nlohmann-json
choco install boost
- name: Download schemas
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: sdk-schemas-cpp
path: languages/cpp/include
- name: Download ${{ matrix.settings.target }} files
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: libbitwarden_c_files-${{ matrix.settings.target }}
path: languages/cpp/include
- name: Build
working-directory: languages/cpp
run: |
mkdir build
cd build
cmake .. -DNLOHMANN=/usr/share/doc/nlohmann-json3-dev -DBOOST=/usr/share/doc/libboost-all-dev -DTARGET=include/libbitwarden_c.dylib
cmake --build .
- name: Upload C++ package for ${{ matrix.settings.target }}
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: libbitwarden_c-${{ matrix.settings.target }}
path: languages/cpp/target/release