Small changes for alpha4 (#35) #148
This file contains hidden or 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 | |
| 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")' |