Skip to content

Commit

Permalink
Merge pull request #7 from jwinarske/jw/ci
Browse files Browse the repository at this point in the history
CI jobs
  • Loading branch information
jwinarske authored Nov 19, 2024
2 parents 431c31f + 50c4faa commit a984a88
Show file tree
Hide file tree
Showing 237 changed files with 13,904 additions and 12,773 deletions.
147 changes: 147 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# Generated from CLion Inspection settings
---
Checks: '-*,
bugprone-argument-comment,
bugprone-assert-side-effect,
bugprone-bad-signal-to-kill-thread,
bugprone-branch-clone,
bugprone-copy-constructor-init,
bugprone-dangling-handle,
bugprone-dynamic-static-initializers,
bugprone-fold-init-type,
bugprone-forward-declaration-namespace,
bugprone-forwarding-reference-overload,
bugprone-inaccurate-erase,
bugprone-incorrect-roundings,
bugprone-integer-division,
bugprone-lambda-function-name,
bugprone-macro-parentheses,
bugprone-macro-repeated-side-effects,
bugprone-misplaced-operator-in-strlen-in-alloc,
bugprone-misplaced-pointer-arithmetic-in-alloc,
bugprone-misplaced-widening-cast,
bugprone-move-forwarding-reference,
bugprone-multiple-statement-macro,
bugprone-no-escape,
bugprone-parent-virtual-call,
bugprone-posix-return,
bugprone-reserved-identifier,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-spuriously-wake-up-functions,
bugprone-string-constructor,
bugprone-string-integer-assignment,
bugprone-string-literal-with-embedded-nul,
bugprone-suspicious-enum-usage,
bugprone-suspicious-include,
bugprone-suspicious-memset-usage,
bugprone-suspicious-missing-comma,
bugprone-suspicious-semicolon,
bugprone-suspicious-string-compare,
bugprone-suspicious-memory-comparison,
bugprone-suspicious-realloc-usage,
bugprone-swapped-arguments,
bugprone-terminating-continue,
bugprone-throw-keyword-missing,
bugprone-too-small-loop-variable,
bugprone-undefined-memory-manipulation,
bugprone-undelegated-constructor,
bugprone-unhandled-self-assignment,
bugprone-unused-raii,
bugprone-unused-return-value,
bugprone-use-after-move,
bugprone-virtual-near-miss,
cert-dcl21-cpp,
cert-dcl58-cpp,
cert-err34-c,
cert-err52-cpp,
cert-err60-cpp,
cert-flp30-c,
cert-msc50-cpp,
cert-msc51-cpp,
cert-str34-c,
cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-narrowing-conversions,
cppcoreguidelines-pro-type-member-init,
cppcoreguidelines-pro-type-static-cast-downcast,
cppcoreguidelines-slicing,
google-default-arguments,
google-explicit-constructor,
google-runtime-operator,
hicpp-exception-baseclass,
hicpp-multiway-paths-covered,
misc-misplaced-const,
misc-new-delete-overloads,
misc-no-recursion,
misc-non-copyable-objects,
misc-throw-by-value-catch-by-reference,
misc-unconventional-assign-operator,
misc-uniqueptr-reset-release,
modernize-avoid-bind,
modernize-concat-nested-namespaces,
modernize-deprecated-headers,
modernize-deprecated-ios-base-aliases,
modernize-loop-convert,
modernize-make-shared,
modernize-make-unique,
modernize-pass-by-value,
modernize-raw-string-literal,
modernize-redundant-void-arg,
modernize-replace-auto-ptr,
modernize-replace-disallow-copy-and-assign-macro,
modernize-replace-random-shuffle,
modernize-return-braced-init-list,
modernize-shrink-to-fit,
modernize-unary-static-assert,
modernize-use-auto,
modernize-use-bool-literals,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-nodiscard,
modernize-use-noexcept,
modernize-use-nullptr,
modernize-use-override,
modernize-use-transparent-functors,
modernize-use-uncaught-exceptions,
mpi-buffer-deref,
mpi-type-mismatch,
openmp-use-default-none,
performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
performance-move-const-arg,
performance-move-constructor-init,
performance-no-automatic-move,
performance-noexcept-move-constructor,
performance-trivially-destructible,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param,
portability-simd-intrinsics,
readability-avoid-const-params-in-decls,
readability-const-return-type,
readability-container-size-empty,
readability-convert-member-functions-to-static,
readability-delete-null-pointer,
readability-deleted-default,
readability-inconsistent-declaration-parameter-name,
readability-make-member-function-const,
readability-misleading-indentation,
readability-misplaced-array-index,
readability-non-const-parameter,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
readability-static-definition-in-anonymous-namespace,
readability-string-compare,
readability-uniqueptr-delete-release,
readability-use-anyofallof'
56 changes: 56 additions & 0 deletions .github/workflows/clang-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: clang-format

on:
pull_request:
types: [ opened, synchronize, reopened, closed ]

jobs:
format:
runs-on: ubuntu-24.04

steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install packages
run: |
sudo apt-get -y update
sudo apt-get -y install ninja-build libglib2.0-dev \
libwayland-dev wayland-protocols libxkbcommon-dev \
mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils
\
wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo apt install ./libtinfo5_6.3-2ubuntu0.1_amd64.deb
\
mkdir clang18 && cd clang18
curl -L -O https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar -xJf clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz --strip-components=1
bin/clang-format --version
- name: Configure CMake
run: |
cmake -G Ninja -B ${{github.workspace}}/build \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DENABLE_AGL_SHELL_CLIENT=ON \
-D CMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Run clang-format
working-directory: ${{github.workspace}}
run: |
export FILE_LIST=$(find . -type d \( -name clang18 -o -name docs -o -name third_party \) -prune -false -o -name '*.cc' -o -name '*.hpp' -o -name '*.h')
echo $FILE_LIST
clang18/bin/clang-format -n --Werror $FILE_LIST 2> clang-format-results.txt
- name: Show results
if: always()
run: |
cat clang-format-results.txt
- name: Publish Report
if: always()
uses: actions/upload-artifact@v4
with:
name: clang-format-results
path: clang-format-*
72 changes: 72 additions & 0 deletions .github/workflows/clang-tidy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: clang-tidy

on:
pull_request:
types: [ opened, synchronize, reopened, closed ]

jobs:
tidy:
runs-on: ubuntu-24.04

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'true'
persist-credentials: false

- name: Install Packages
run: |
echo ${{ github.server_url }}
sudo apt-get -y update
sudo apt-get -y install ninja-build \
libwayland-dev wayland-protocols libxkbcommon-dev libglib2.0-dev \
mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils
wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo apt install ./libtinfo5_6.3-2ubuntu0.1_amd64.deb
rm libtinfo5_6.3-2ubuntu0.1_amd64.deb
mkdir clang18 && cd clang18
curl -L -O https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar -xJf clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz --strip-components=1
bin/clang-tidy --version
cmake --version
gcc --version
- name: Configure CMake
run: |
cmake -G Ninja -B ${{github.workspace}}/build \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DENABLE_AGL_SHELL_CLIENT=ON \
-D CMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Build
run: ninja -C ${{github.workspace}}/build

- name: clang-tidy
working-directory: ${{github.workspace}}
run: |
clang-tidy --dump-config
export FILE_LIST=$(find . -type d \( -name clang18 -o -name build \) -prune -false -o -name '*.cc' -o -name '*.hpp' -o -name '*.h')
echo $FILE_LIST
clang18/bin/run-clang-tidy \
-p ${{github.workspace}}/build \
-warnings-as-errors='*,-bugprone-macro-parentheses' \
-quiet \
-export-fixes=tidy-results-suggested-fixes.txt \
$FILE_LIST 2> tidy-results-log.txt
- name: Show results
if: always()
run: |
cat tidy-results-log.txt
cat tidy-results-suggested-fixes.txt
- name: Publish Report
if: always()
uses: actions/upload-artifact@v4
with:
name: clang-tidy-results
path: tidy-results-*
67 changes: 67 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: "CodeQL"

on:
push:
branches: [ 'v2.0' ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ 'main' ]
schedule:
- cron: '29 4 * * 4'

jobs:
analyze:
if: ${{ github.server_url == 'https://github.com' && always() }}
name: Analyze
runs-on: ubuntu-22.04
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'

- name: Install packages
run: |
echo ${{ github.server_url }}
sudo apt-get -y install ninja-build \
libwayland-dev wayland-protocols libxkbcommon-dev libglib2.0-dev \
mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils
cmake --version
gcc --version
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
queries: +security-and-quality

- name: Configure
run: |
mkdir -p ${{github.workspace}}/build/release
cmake -GNinja \
-B ${{github.workspace}}/build/release \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_STAGING_PREFIX=${{github.workspace}}/build/staging/usr/local
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

name: ubuntu-latest
name: ubuntu

on:
push:
Expand All @@ -24,23 +23,21 @@ jobs:
- name: Install Packages
run: |
echo ${{ github.server_url }}
sudo apt-get -y install ninja-build \
sudo apt-get -y install ninja-build libglib2.0-dev \
libwayland-dev wayland-protocols libxkbcommon-dev \
mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils
cmake --version
gcc --version
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
run: |
cmake -G Ninja -B ${{github.workspace}}/build \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DENABLE_AGL_SHELL_CLIENT=ON
- name: Build
# Build your program with the given configuration
run: ninja -C ${{github.workspace}}/build

- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}
2 changes: 0 additions & 2 deletions cmake/options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
#
option(ENABLE_XDG_CLIENT "Enable XDG Client" ON)
option(ENABLE_AGL_SHELL_CLIENT "Enable AGL Shell" OFF)
option(ENABLE_IVI_SHELL_CLIENT "Enable IVI Shell Client" OFF)
option(ENABLE_DRM_LEASE_CLIENT "Enable DRM Lease Client" OFF)

option(ENABLE_EGL "Enable EGL dependency" ON)

Expand Down
Loading

0 comments on commit a984a88

Please sign in to comment.