diff --git a/.github/scripts/.Brewfile b/.github/scripts/.Brewfile index cdc51f13e..b4fea42dd 100644 --- a/.github/scripts/.Brewfile +++ b/.github/scripts/.Brewfile @@ -3,3 +3,4 @@ brew "cmake" brew "git" brew "jq" brew "xcbeautify" +brew "xclogparser" diff --git a/.github/scripts/.build.zsh b/.github/scripts/.build.zsh index 3009d58e0..b4250afa6 100755 --- a/.github/scripts/.build.zsh +++ b/.github/scripts/.build.zsh @@ -145,11 +145,12 @@ build() { local -a build_args=( ONLY_ACTIVE_ARCH=NO -project obs-studio.xcodeproj - -target obs-studio + -scheme obs-studio -destination "generic/platform=macOS,name=Any Mac" -configuration ${config} -parallelizeTargets -hideShellScriptEnvironment + -resultBundlePath ${project_root}/build_macos/build.xcresult build ) @@ -178,6 +179,18 @@ build() { } else { run_xcodebuild ${build_args} + local -a jq_query=( + 'keys[] as $k' + '{level: "\($k)"|sub("warnings";"warning")|sub("errors";"failure"), data: (.[$k][])}' + '{file: .data.documentURL, start_line: .data.startingLineNumber, end_line: .data.endingLineNumber, start_column: .data.startingColumnNumber, end_column: .data.endingColumnNumber, title: "Compiler \(.level)", message: .data.title, annotation_level: .level}' + ) + + xclogparser parse --project obs-studio --reporter issues \ + | jq ${(j: | :)jq_query} \ + | jq -s '. | unique' \ + | sed -E -e "s#file://${project_root}/##g" \ + > ${project_root}/build_issues.json + rm -rf OBS.app mkdir OBS.app ditto UI/${config}/OBS.app OBS.app