mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 10:08:18 +00:00
2eb4a50d4d
ALso exclude coverage.map from twmap-checker due to using tele checkpoints without matching tele checkpoints to test physics. Disable exact checks on valgrind. Only require at least one finish.
90 lines
3.6 KiB
YAML
90 lines
3.6 KiB
YAML
name: Check style
|
|
|
|
on:
|
|
push:
|
|
branches-ignore:
|
|
- gh-readonly-queue/**
|
|
- master
|
|
pull_request:
|
|
merge_group:
|
|
|
|
jobs:
|
|
check-style:
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
CARGO_HTTP_MULTIPLEXING: false
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- name: Prepare
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install clang-format imagemagick ddnet-tools shellcheck pkg-config cmake ninja-build libfreetype6-dev libnotify-dev libsdl2-dev libsqlite3-dev libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev libx264-dev python3-clang libvulkan-dev glslang-tools spirv-tools -y
|
|
rustup default stable
|
|
pip3 install pylint
|
|
git clone https://gitlab.com/Patiga/twmap.git/
|
|
cd twmap/twmap-tools
|
|
cargo install --locked --path=.
|
|
cd ../..
|
|
rm -rf twmap
|
|
mkdir release
|
|
cd release
|
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DDOWNLOAD_GTEST=OFF -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. ..
|
|
cmake --build . --config Release --target dilate
|
|
- name: Check clang-format
|
|
run: clang-format -version
|
|
- name: Check fix_style
|
|
run: scripts/fix_style.py --dry-run
|
|
- name: Check header guards
|
|
run: scripts/check_header_guards.py
|
|
- name: Check languages
|
|
run: scripts/languages/update_all.py
|
|
- name: Check dilated images
|
|
run: scripts/check_dilate.sh release data
|
|
- name: Check absolute includes
|
|
run: "! grep --exclude-dir rust-bridge -rE '^#include \"(antibot|base|engine|game|steam|test)/' src/"
|
|
- name: Check standard header includes
|
|
run: scripts/check_standard_headers.sh
|
|
- name: Check config variables
|
|
run: scripts/check_config_variables.py
|
|
# TODO: Enable on release branches
|
|
#- name: Out-of-date translations
|
|
# run: |
|
|
# cp -a data/languages data/languages.orig
|
|
# scripts/languages/update_all.py
|
|
# diff_lang=$(diff data/languages.orig data/languages)
|
|
# if [ -n "$diff_lang" ]; then
|
|
# echo "Update translations:\n$diff_lang"
|
|
# exit 1
|
|
# fi
|
|
- name: Shellcheck
|
|
run: find . -type f -name '*.sh' -print0 | xargs -0 shellcheck
|
|
- name: Check log error case
|
|
run: |
|
|
if grep -Eqr '(msg|Print).*\(.*"[Ee]rror:' src/;
|
|
then
|
|
echo "Expected log errors to be in this format 'ERROR: error message'"
|
|
echo "Found these non uppercased log errors:"
|
|
grep -Er '(msg|Print).*\(.*"[Ee]rror:' src/
|
|
exit 1
|
|
fi
|
|
- name: Pylint
|
|
run: |
|
|
pylint --version
|
|
find . -type f -name "*.py" -not -path './ddnet-libs/*' -not -path './googletest-src/*' -print0 | xargs -0 pylint
|
|
- name: Unused header files
|
|
run: scripts/check_unused_header_files.py
|
|
- name: Check maps
|
|
run: |
|
|
findings=$(find data -type f -name '*.map' ! -wholename 'data/maps/coverage.map' -print0 | xargs -0 ~/.cargo/bin/twmap-check-ddnet 2>&1 | \
|
|
grep -v -E "\"data/maps/(ctf|dm).*\.map\": Time cps are missing on the map" | \
|
|
grep -v -E "\"data/themes/.*\.map\": Time cps are missing on the map" | \
|
|
grep -v -E "\"data/maps/ctf4\.map\": Map - In Image at index 3 -> Image 'jungle_doodads_old' is not a valid external image for DDNet06" | \
|
|
grep -v -E "\"data/themes/autumn_night\.map\": Map - In Image at index 3 -> Image 'generic_lamps' is not a valid external image for DDNet06" | \
|
|
grep -v -E "\"data/maps7?/Tutorial\.map\": Map setting - Unusual: 'sv_show_others_default'" || true)
|
|
if [ -n "$findings" ]; then
|
|
echo "$findings"
|
|
exit 1
|
|
fi
|