summaryrefslogtreecommitdiffstats
path: root/src/s3select/.github/workflows/clang-tidy.yml
blob: c3c95a3e3d1a8dcf05b7b2ba8b2c2e8df642ccd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
name: clang-tidy

on: [push]

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Release

jobs:
  clang-tidy:
    runs-on: ubuntu-20.04

    steps:
    - uses: actions/checkout@v2
    - name: Checkout submodules
      run: git submodule update --init --recursive

    - name: install-clang-tidy
      run: sudo apt-get install -y clang-tidy
    
    - name: install-boost
      run: |
          sudo apt-get update
          sudo apt-get install -y libboost-all-dev

    - name: fetch-gtest
      run: sudo apt-get install -y libgtest-dev
      
    - name: install arrow
      run: | 
        sudo apt-get update
        sudo apt-get install -y -V ca-certificates lsb-release wget
        sudo curl -L https://dist.apache.org/repos/dist/dev/arrow/KEYS | sudo apt-key add -
        sudo add-apt-repository "deb [arch=amd64] https://apache.jfrog.io/artifactory/arrow/ubuntu focal main"
        sudo apt-get update
        sudo apt-get install -y -V libarrow-dev
          
    - name: install parquet
      run: sudo apt-get install -y -V libparquet-dev


    - name: install-gtest
      run: cd /usr/src/gtest && sudo cmake . && sudo make && sudo cp lib/*.a /usr/lib || sudo cp *.a /usr/lib

    - name: install-gperftools
      run: sudo apt-get install -y libgoogle-perftools-dev

    - name: Create Build Environment
      # Some projects don't allow in-source building, so create a separate build directory
      # We'll use this as our working directory for all subsequent commands
      run: cmake -E make_directory ${{github.workspace}}/build

    - name: Configure CMake
      # Use a bash shell so we can use the same syntax for environment variable
      # access regardless of the host operating system
      shell: bash
      working-directory: ${{github.workspace}}/build
      # Note the current convention is to use the -S and -B options here to specify source 
      # and build directories, but this is only available with CMake 3.13 and higher.  
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
      run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

    - name: run-clang-tidy
      run: clang-tidy -p ${{github.workspace}}/build -header-filter=.* -checks=-*,clang-analyzer-*,concurrency-*,cert-*,-cert-err58-cpp,google-explicit-constructor,misc-redundant-expression,readability-braces-around-statements.ShortStatementLines=1,readability-delete-null-pointer,readability-make-member-function-const,cppcoreguidelines-special-member-functions  example/s3select_example.cpp