diff --git a/.github/workflows/clang-ast.yaml b/.github/workflows/clang-ast.yaml new file mode 100644 index 000000000..bd503e4e5 --- /dev/null +++ b/.github/workflows/clang-ast.yaml @@ -0,0 +1,49 @@ +name: "Clang AST" + +on: + push: + branches: master + paths: + - configure + - 'auto/**' + - 'src/**' + - 'test/**' + - '.github/workflows/clang-ast.yaml' + pull_request: + branches: master + paths: + - configure + - 'auto/**' + - 'src/**' + - 'test/**' + - '.github/workflows/clang-ast.yaml' + +jobs: + clang-ast: + runs-on: ubuntu-latest + + container: + image: debian:testing + + steps: + - name: Install tools/deps + run: | + apt-get -y update + apt-get -y install git llvm-dev clang-dev clang make \ + openssl-dev libpcre2-dev + + - uses: actions/checkout@v4 + + - name: Checkout and build clang-ast + run: | + git clone https://github.com/ac000/clang-ast -b unit-stdc++17 + cd clang-ast + make + + - name: Configure Unit + run: ./configure --cc=clang --tests --openssl --debug + + - name: Build Unit + run: make -j4 \ + EXTRA_CFLAGS='-Xclang -load -Xclang clang-ast/ngx-ast.so -Xclang -plugin -Xclang ngx-ast' \ + NXT_SHARED_LOCAL_LINK=: build/lib/libnxt.so V=1