From caee33564d3f05162dab87f8f707d7c0afcc4b42 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Date: Thu, 13 Jun 2024 11:20:29 +0200 Subject: [PATCH] Adding simple lint, build and test ci workflows Signed-off-by: Sebastian Lukas --- .ci/build-kit/build_and_test.sh | 16 ++++++++ .github/workflows/build_and_test.yaml | 56 +++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 .ci/build-kit/build_and_test.sh create mode 100644 .github/workflows/build_and_test.yaml diff --git a/.ci/build-kit/build_and_test.sh b/.ci/build-kit/build_and_test.sh new file mode 100644 index 0000000..24fefa2 --- /dev/null +++ b/.ci/build-kit/build_and_test.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +cmake \ + -B build \ + -S "$EXT_MOUNT/source" \ + -G Ninja \ + -DCB_V2G_BUILD_TESTS=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + +ninja -j$(nproc) -C build + +trap "cp build/Testing/Temporary/LastTest.log /ext/ctest-report" EXIT + +ninja -j$(nproc) -C build test \ No newline at end of file diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml new file mode 100644 index 0000000..4306111 --- /dev/null +++ b/.github/workflows/build_and_test.yaml @@ -0,0 +1,56 @@ +name: Build and test libcbv2g +on: + pull_request: {} + workflow_dispatch: + inputs: + runner: + description: Which runner to use + type: choice + default: 'ubuntu-22.04' + required: true + options: + - 'ubuntu-22.04' + - 'large-ubuntu-22.04-xxl' +jobs: + lint: + name: Lint + runs-on: ${{ inputs.runner || 'ubuntu-22.04' }} + steps: + - name: Checkout libcbv2g + uses: actions/checkout@v3 + with: + path: source + - name: Run clang-format + uses: everest/everest-ci/github-actions/run-clang-format@v1.1.0 + with: + source-dir: source + extensions: hpp,cpp + exclude: cache + build_and_test: + name: Build and test + runs-on: ${{ inputs.runner || 'ubuntu-22.04' }} + steps: + - name: Checkout libcbv2g + uses: actions/checkout@v3 + with: + path: source + - name: Setup run scripts + run: | + mkdir scripts + rsync -a source/.ci/build-kit/ scripts + - name: Pull docker container + run: | + docker pull --platform=linux/x86_64 --quiet ghcr.io/everest/build-kit-alpine:latest + docker image tag ghcr.io/everest/build-kit-alpine:latest build-kit + - name: Build and test + run: | + docker run \ + --volume "$(pwd):/ext" \ + --name test-container \ + build-kit run-script build_and_test + - name: Archive test results + if: always() + uses: actions/upload-artifact@v3 + with: + name: ctest-report + path: ${{ github.workspace }}/ctest-report