From 3ed6f5b382e0222aa97dc511d178e438ea56ae87 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 30 Aug 2021 01:48:23 +0900 Subject: [PATCH] Don't uniq warnings and write initial build to file (#407) * Don't uniq warnings and write initial build to file * Don't build twice, turn ccache off by default --- Jenkinsfile | 6 ++--- tools/build/configure.py | 4 +-- tools/warnings_count/check_new_warnings.sh | 26 ++++++++++++++++--- .../warnings_count/update_current_warnings.sh | 2 +- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2e5586eab0..d6a4e57bc9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,12 +10,12 @@ pipeline { sh 'cp /usr/local/etc/roms/papermario.jp.z64 ver/jp/baserom.z64' sh 'curl -L "https://github.com/pmret/gcc-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc' sh 'curl -L "https://github.com/pmret/binutils-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc' - sh './configure --no-ccache' + sh './configure' } } stage('Build') { steps { - sh 'ninja' + sh 'ninja 2>&1 | tee build_log.txt' } } stage("Comment") { @@ -29,7 +29,7 @@ pipeline { if (env.CHANGE_ID) { def us_progress = sh(returnStdout: true, script: "python3 progress.py us --pr-comment").trim() def jp_progress = sh(returnStdout: true, script: "python3 progress.py jp --pr-comment").trim() - def warnings = sh(returnStdout: true, script: "./tools/warnings_count/check_new_warnings.sh --pr-message").trim() + def warnings = sh(returnStdout: true, script: "./tools/warnings_count/check_new_warnings.sh --jenkins").trim() def comment_id = -1 for (comment in pullRequest.comments) { diff --git a/tools/build/configure.py b/tools/build/configure.py index b12979f2d7..e9327e9c3c 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -638,7 +638,7 @@ if __name__ == "__main__": parser.add_argument("-d", "--debug", action="store_true", help="Generate debugging information") parser.add_argument("-n", "--non-matching", action="store_true", help="Compile nonmatching code. Combine with --debug for more detailed debug info") parser.add_argument("-w", "--no-warn", action="store_true", help="Inhibit compiler warnings") - parser.add_argument("--no-ccache", action="store_true", help="Don't use ccache") + parser.add_argument("--ccache", action="store_true", help="Use ccache") args = parser.parse_args() exec_shell(["make", "-C", str(ROOT / args.splat)]) @@ -706,7 +706,7 @@ if __name__ == "__main__": ninja = ninja_syntax.Writer(open(str(ROOT / "build.ninja"), "w"), width=9999) - write_ninja_rules(ninja, args.cpp or "cpp", cppflags, cflags, not args.no_ccache) + write_ninja_rules(ninja, args.cpp or "cpp", cppflags, cflags, args.ccache) write_ninja_for_tools(ninja) skip_files = set() diff --git a/tools/warnings_count/check_new_warnings.sh b/tools/warnings_count/check_new_warnings.sh index 6d2c6c103e..8dce1fb4e0 100755 --- a/tools/warnings_count/check_new_warnings.sh +++ b/tools/warnings_count/check_new_warnings.sh @@ -1,11 +1,29 @@ #!/bin/bash set -e +set -o pipefail # This script can be used when you want to test locally the amount of warnings produced by your changes before doing a PR. +pyflags="" +rebuild=false + +if [[ $1 == "--jenkins" ]] + then + pyflags="--pr-message" + rebuild=false + else + rebuild=true +fi + +if $rebuild +then + echo "Rebuilding to collect warnings..." + rm -rf ver/*/build/src + ninja | grep warning | sort > tools/warnings_count/warnings_new.txt +else + cat build_log.txt | grep warning | sort > tools/warnings_count/warnings_new.txt +fi + curl -L https://papermar.io/reports/warnings.txt > tools/warnings_count/warnings.txt -rm -rf ver/*/build/src -ninja | grep warning | sort | uniq > tools/warnings_count/warnings_new.txt - -python3 tools/warnings_count/compare_warnings.py tools/warnings_count/warnings.txt tools/warnings_count/warnings_new.txt $@ +python3 tools/warnings_count/compare_warnings.py tools/warnings_count/warnings.txt tools/warnings_count/warnings_new.txt $pyflags diff --git a/tools/warnings_count/update_current_warnings.sh b/tools/warnings_count/update_current_warnings.sh index 826fc078fa..910d604034 100755 --- a/tools/warnings_count/update_current_warnings.sh +++ b/tools/warnings_count/update_current_warnings.sh @@ -4,4 +4,4 @@ set -e # This script should only be used when we need to modify the accepted amount of warnings. rm -rf ver/*/build/src -ninja | grep warning | sort | uniq > tools/warnings_count/warnings.txt +ninja | grep warning | sort > tools/warnings_count/warnings.txt