Skip to content

Small changes for alpha4 (#35) #148

Small changes for alpha4 (#35)

Small changes for alpha4 (#35) #148

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: ["**"]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Install Conan
id: conan
uses: turtlebrowser/get-conan@main
with:
version: 2.3.2
- name: Configure conan profile
shell: bash
run: |
conan profile detect
conan profile show
- name: Fetch up-zenoh-example-cpp conan recipe
uses: actions/checkout@v4
with:
path: up-zenoh-example-cpp
- name: Fetch up-cpp conan recipe
uses: actions/checkout@v4
with:
path: up-conan-recipes
repository: eclipse-uprotocol/up-conan-recipes
- name: Build up-core-api conan recipe
shell: bash
run: |
conan create --version 1.6.0-alpha4 --build=missing up-conan-recipes/up-core-api/release
- name: Build up-cpp conan recipe
shell: bash
run: |
conan create --version 1.0.1-dev --build=missing up-conan-recipes/up-cpp/developer
- name: Build zenoh-c recipe
shell: bash
run: |
conan create --version 1.2.1 up-conan-recipes/zenohc-tmp/prebuilt
- name: Build zenoh-cpp recipe
shell: bash
run: |
conan create --version 1.2.1 up-conan-recipes/zenohcpp-tmp/from-source
- name: Build up-transport-zenoh-cpp recipe
shell: bash
run: |
conan create --version 1.0.0-dev --build=missing up-conan-recipes/up-transport-zenoh-cpp/developer
- name: Build the project
shell: bash
run: |
cd up-zenoh-example-cpp
conan install --build=missing .
cmake --preset conan-release -DCMAKE_EXPORT_COMPILE_COMMANDS=yes
cd build/Release
cmake --build . -- -j
- name: Upload compile commands
uses: actions/upload-artifact@v4
with:
name: compile-commands
path: up-zenoh-example-cpp/build/Release/compile_commands.json
- name: Save conan cache to archive
shell: bash
run: |
conan cache save --file ./conan-cache.tgz '*'
- name: Upload conan cache for linting
uses: actions/upload-artifact@v4
with:
name: conan-cache
path: ./conan-cache.tgz
lint:
name: Lint C++ sources
runs-on: ubuntu-22.04
needs: build
permissions:
contents: write
pull-requests: read
steps:
- name: Fetch up-zenoh-example-cpp
uses: actions/checkout@v4
with:
path: up-zenoh-example-cpp
- name: Get build commands
uses: actions/download-artifact@v4
with:
name: compile-commands
- name: Install Conan
id: conan
uses: turtlebrowser/get-conan@main
with:
version: 2.3.2
- name: Install conan CI profile
shell: bash
run: |
conan profile detect
cp up-zenoh-example-cpp/.github/workflows/ci_conan_profile "$(conan profile path default)"
conan profile show
- name: Get conan cache
uses: actions/download-artifact@v4
with:
name: conan-cache
- name: Restore conan cache from archive
shell: bash
run: |
conan cache restore conan-cache.tgz
- name: Run linters on source
id: source-linter
uses: cpp-linter/cpp-linter-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
repo-root: up-zenoh-example-cpp
style: 'file' # read .clang-format for configuration
tidy-checks: '' # Read .clang-tidy for configuration
database: compile_commands.json
version: 13
- name: Report lint failure
if:
steps.source-linter.outputs.checks-failed > 0
run: |
exit 1
# NOTE: In GitHub repository settings, the "Require status checks to pass
# before merging" branch protection rule ensures that commits are only merged
# from branches where specific status checks have passed. These checks are
# specified manually as a list of workflow job names. Thus we use this extra
# job to signal whether all CI checks have passed.
ci:
name: CI status checks
runs-on: ubuntu-latest
needs: build
if: always()
steps:
- name: Check whether all jobs pass
run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")'