Upgrades SpacemanDMM + Dreamchecker CI (#24247)

* update to suite 1.8

* lets go annotate dm

* okay lets not fuck up

* testing commit

* return it to the natural state
This commit is contained in:
Contrabang
2024-03-01 18:19:59 -05:00
committed by GitHub
parent 3792a0f6c7
commit 27c70cde0a
4 changed files with 59 additions and 10 deletions
+3 -9
View File
@@ -39,15 +39,9 @@ jobs:
python -m tools.ci.check_icon_conflicts
python -m tools.ci.check_icon_dupenames
python -m tools.maplint.source --github
DREAMCHECKER_EXIT_CODE=0
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 || DREAMCHECKER_EXIT_CODE=$?
echo 'DREAMCHECKER_ANNOTATED=1' >> "$GITHUB_ENV"
exit $DREAMCHECKER_EXIT_CODE
- name: Annotate Lints
uses: yogstation13/DreamAnnotate@v2
if: ${{ always() && env.DREAMCHECKER_ANNOTATED == '1' }}
with:
outputFile: output-annotations.txt
- name: Run DreamChecker
shell: bash
run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh
odlint:
name: Lint with OpenDream
+1 -1
View File
@@ -1,6 +1,6 @@
# This file has all the information on what versions of libraries are thrown into the code
# For dreamchecker
export SPACEMANDMM_TAG=suite-1.7.1
export SPACEMANDMM_TAG=suite-1.8
# For TGUI
export NODE_VERSION=20
# Stable Byond Major
+51
View File
@@ -0,0 +1,51 @@
import sys
import re
import os.path as path
# Usage: python3 annotate_dm.py [filename]
# If filename is not provided, stdin is checked instead
def red(text):
return "\033[31m" + str(text) + "\033[0m"
def green(text):
return "\033[32m" + str(text) + "\033[0m"
def yellow(text):
return "\033[33m" + str(text) + "\033[0m"
def annotate(raw_output):
# Remove ANSI escape codes
raw_output = re.sub(r'(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]', '', raw_output)
print("::group::DreamChecker Output")
print(raw_output)
print("::endgroup::")
annotation_regex = r'(?P<filename>.*?), line (?P<line>\d+), column (?P<column>\d+):\s{1,2}(?P<type>error|warning): (?P<message>.*)'
has_issues = False
print("DM Code Annotations:")
for annotation in re.finditer(annotation_regex, raw_output):
print(f"::{annotation['type']} file={annotation['filename']},line={annotation['line']},col={annotation['column']}::{annotation['message']}")
has_issues = True
if not has_issues:
print(green("No DM issues found"))
def main():
if len(sys.argv) > 1:
if not path.exists(sys.argv[1]):
print(red(f"Error: Annotations file '{sys.argv[1]}' does not exist"))
sys.exit(1)
with open(sys.argv[1], 'r') as f:
annotate(f.read())
elif not sys.stdin.isatty():
annotate(sys.stdin.read())
else:
print(red("Error: No input provided"))
print("Usage: tools/ci/annotate_dm.sh [filename]")
sys.exit(1)
if __name__ == '__main__':
main()
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
python tools/ci/annotate_dm.py "$@"