Judgedaemon gather extensions based on domserver config (#2130) #2939
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "CodeQL" | |
on: | |
push: | |
branches: | |
- main | |
- '[0-9]+.[0-9]+' | |
pull_request: | |
branches: | |
- main | |
- '[0-9]+.[0-9]+' | |
jobs: | |
analyze: | |
# We can not run with our gitlab container | |
# CodeQL has missing .so files otherwise | |
name: Analyze | |
runs-on: ubuntu-latest | |
env: | |
COMPILED: "cpp" | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
strategy: | |
fail-fast: false | |
matrix: | |
language: [ 'cpp', 'java', 'javascript', 'python' ] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
with: | |
languages: ${{ matrix.language }} | |
- name: Install required tools | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: | | |
sudo apt update | |
sudo apt install -y acl zip unzip apache2 php php-fpm php-gd \ | |
php-cli php-intl php-mbstring php-mysql php-curl php-json \ | |
php-xml php-zip ntp make sudo debootstrap \ | |
libcgroup-dev lsof php-cli php-curl php-json php-xml \ | |
php-zip procps gcc g++ default-jre-headless \ | |
default-jdk-headless ghc fp-compiler autoconf automake bats \ | |
python3-sphinx python3-sphinx-rtd-theme rst2pdf fontconfig \ | |
python3-yaml latexmk | |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | |
HASH="$(wget -q -O - https://composer.github.io/installer.sig)" | |
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" | |
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer | |
- name: Install composer files | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: | | |
composer install --no-scripts | |
- name: Configure Makefile | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: | | |
DIR=$(pwd) | |
mkdir ./installdir | |
make configure | |
./configure --enable-doc-build=no --prefix=$DIR/installdir | |
- name: Compile domserver | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: | | |
make domserver | |
make install-domserver | |
- name: Compile the build scripts for languages | |
run: | | |
make build-scripts | |
- name: Compile judgehost | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: | | |
make judgehost | |
sudo make install-judgehost | |
- name: Remove upstream code | |
run: | | |
rm -rf webapp/public/js/ace doc/manual/_static | |
- name: Chown everything to the current runner user | |
if: ${{ contains(env.COMPILED, matrix.language) }} | |
run: sudo chown -R ${USER} ./installdir | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v2 |