summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/clang-ast.yaml
blob: 7e032e9cff3bad116a6fd3207239d25d5a0cffda (plain) (blame)
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
66
67
68
69
70
71
72
73
74
75
76
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 wget curl llvm-dev libclang-dev clang make \
                             libssl-dev libpcre2-dev libperl-dev \
                             libphp-embed php-dev python3-dev libpython3-dev \
                             ruby-dev openjdk-17-jdk npm
          npm install -g node-gyp

      - uses: actions/checkout@v4

      - name: Checkout and build clang-ast
        run: |
          git clone https://github.com/nginx/clang-ast.git -b unit
          cd clang-ast
          make

      - name: Configure Unit
        run: ./configure --cc=clang --cc-opt="-Xclang -load -Xclang clang-ast/ngx-ast.so -Xclang -add-plugin -Xclang ngx-ast" --openssl --debug --tests

      - name: Build Unit
        run: make -j4 unitd

      - name: Build C tests
        run: make -j4 tests

      - name: Build Perl language module
        run: ./configure perl && make -j4 perl

      - name: Build PHP language module
        run: ./configure php && make -j4 php

      - name: Build Python language module
        run: ./configure python --config=python3-config && make -j4 python3

      - name: Build Ruby language module
        run: ./configure ruby && make -j4 ruby

      - name: Build Java support
        run: ./configure java && make -j4 java

      - name: Build Nodejs support
        run: ./configure nodejs && make node-local-install DESTDIR=node

      - name: Build wasm language module
        run: |
          wget -q -O- https://github.com/bytecodealliance/wasmtime/releases/download/v26.0.0/wasmtime-v26.0.0-x86_64-linux-c-api.tar.xz | tar -xJf -
          ./configure wasm --include-path=wasmtime-v26.0.0-x86_64-linux-c-api/include --lib-path=wasmtime-v26.0.0-x86_64-linux-c-api/lib --rpath && make wasm