|
1 | | -name: "CodeQL" |
2 | | - |
3 | | -on: |
4 | | - merge_group: |
5 | | - pull_request: |
6 | | - branches: |
7 | | - - main |
8 | | - - '[0-9]+.[0-9]+' |
9 | | - |
10 | | -jobs: |
11 | | - analyze: |
12 | | - container: |
13 | | - image: domjudge/gitlabci:24.04 |
14 | | - options: --user domjudge |
15 | | - name: Analyze |
16 | | - runs-on: ubuntu-latest |
17 | | - env: |
18 | | - COMPILED: "cpp" |
19 | | - USER: "domjudge" |
20 | | - permissions: |
21 | | - actions: read |
22 | | - contents: read |
23 | | - security-events: write |
24 | | - |
25 | | - strategy: |
26 | | - fail-fast: false |
27 | | - matrix: |
28 | | - language: [ 'cpp', 'java', 'javascript', 'python' ] |
29 | | - |
30 | | - steps: |
31 | | - - name: Checkout repository |
32 | | - uses: actions/checkout@v4 |
33 | | - |
34 | | - - name: Initialize CodeQL |
35 | | - uses: github/codeql-action/init@v3 |
36 | | - with: |
37 | | - languages: ${{ matrix.language }} |
38 | | - |
39 | | - - name: Install composer files |
40 | | - if: ${{ contains(env.COMPILED, matrix.language) }} |
41 | | - run: | |
42 | | - cd webapp |
43 | | - composer install --no-scripts |
44 | | -
|
45 | | - - name: Configure Makefile |
46 | | - if: ${{ contains(env.COMPILED, matrix.language) }} |
47 | | - run: | |
48 | | - DIR=$(pwd) |
49 | | - mkdir ./installdir |
50 | | - make configure |
51 | | - ./configure --enable-doc-build=no --prefix=$DIR/installdir |
52 | | -
|
53 | | - - name: Compile domserver |
54 | | - if: ${{ contains(env.COMPILED, matrix.language) }} |
55 | | - run: | |
56 | | - make domserver |
57 | | - make install-domserver |
58 | | -
|
59 | | - - name: Compile the build scripts for languages |
60 | | - run: | |
61 | | - make build-scripts |
62 | | -
|
63 | | - - name: Compile judgehost |
64 | | - if: ${{ contains(env.COMPILED, matrix.language) }} |
65 | | - run: | |
66 | | - make judgehost |
67 | | - sudo make install-judgehost |
68 | | -
|
69 | | - - name: Remove upstream code |
70 | | - run: | |
71 | | - rm -rf webapp/public/js/monaco doc/manual/_static |
72 | | -
|
73 | | - - name: Chown everything to the current runner user |
74 | | - if: ${{ contains(env.COMPILED, matrix.language) }} |
75 | | - run: sudo chown -R ${USER} ./installdir |
76 | | - |
77 | | - - name: Perform CodeQL Analysis |
78 | | - uses: github/codeql-action/analyze@v3 |
0 commit comments