Updating CI to use published up-cpp 1.0.1 release #250
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: ["**"] | |
jobs: | |
build: | |
name: Build up-transport-zenoh-cpp and dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Conan | |
id: conan | |
uses: turtlebrowser/get-conan@main | |
- name: Create default Conan profile | |
run: conan profile detect | |
- name: Fetch up-core-api conan recipe | |
uses: actions/checkout@v4 | |
with: | |
path: up-conan-recipes | |
repository: eclipse-uprotocol/up-conan-recipes | |
- name: Build up-core-api conan package | |
shell: bash | |
run: | | |
conan create --version 1.6.0-alpha2 up-conan-recipes/up-core-api/release | |
- name: Build up-cpp conan package | |
shell: bash | |
run: | | |
conan create --version 1.0.1 --build=missing up-conan-recipes/up-cpp/release | |
- name: Build zenohcpp conan package | |
shell: bash | |
run: | | |
conan create --version 1.0.0-rc5 up-conan-recipes/zenohc-tmp/prebuilt | |
conan create --version 1.0.0-rc5 up-conan-recipes/zenohcpp-tmp/from-source | |
- name: Fetch up-transport-zenoh-cpp | |
uses: actions/checkout@v4 | |
with: | |
path: up-transport-zenoh-cpp | |
- name: Build up-transport-zenoh-cpp with tests | |
shell: bash | |
run: | | |
cd up-transport-zenoh-cpp | |
conan install . --deployer=full_deploy --build=missing | |
cmake --preset conan-release -DCMAKE_EXPORT_COMPILE_COMMANDS=yes | |
cmake --build --preset conan-release -- -j | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-artifacts | |
path: | | |
up-transport-zenoh-cpp/build/Release | |
up-transport-zenoh-cpp/test/*.json5 | |
up-transport-zenoh-cpp/full_deploy | |
- name: Upload compile commands | |
uses: actions/upload-artifact@v4 | |
with: | |
name: compile-commands | |
path: up-transport-zenoh-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 | |
test: | |
name: Run up-transport-zenoh-cpp tests | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Get build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-artifacts | |
path: up-transport-zenoh-cpp | |
- name: Run all tests | |
shell: bash | |
run: | | |
cd up-transport-zenoh-cpp/build/Release | |
chmod +x bin/* | |
ctest | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: success() || failure() | |
with: | |
name: test-results | |
path: 'up-transport-zenoh-cpp/build/Release/test/results/*.xml' | |
lint: | |
name: Lint C++ sources | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Get build commands | |
uses: actions/download-artifact@v4 | |
with: | |
name: compile-commands | |
- name: Install Conan | |
id: conan | |
uses: turtlebrowser/get-conan@main | |
- name: Create default Conan profile | |
run: conan profile detect | |
- 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: Fetch up-transport-zenoh-cpp | |
uses: actions/checkout@v4 | |
with: | |
path: up-transport-zenoh-cpp | |
- 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-transport-zenoh-cpp | |
ignore: 'test' | |
style: 'file' # read .clang-format for configuration | |
tidy-checks: '' # Read .clang-tidy for configuration | |
database: compile_commands.json | |
- name: Run linters on tests | |
id: test-linter | |
uses: cpp-linter/cpp-linter-action@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
repo-root: up-transport-zenoh-cpp | |
ignore: 'src|include' | |
style: 'file' # read .clang-format for configuration | |
tidy-checks: '' # Read .clang-tidy for configuration | |
database: compile_commands.json | |
- name: Report lint failure | |
if: steps.source-linter.outputs.checks-failed > 0 || steps.test-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, test] | |
# NOTE tests are currently known failing. At this early stage, we will allow | |
# some PRs to merge without fixing those tests. This will be reverted in the | |
# near future. | |
needs: [build] | |
if: always() | |
steps: | |
- name: Check whether all jobs pass | |
run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")' |