That gives us a way to test e.g. pull requests by specifying
ph_scripts_refspec="pull/123/head"
Also keep "ph_" prefix to remove confusion we had between
"scripts_branch" and "ph_scripts_branch" before.
Update docs and moved "testing" sections up.
some compiler-rt files contain architecture-specific assembly code or
complex macroses which clang-tidy can't process properly.
In case of assembly code: we can get "unknown register name 'a7' in asm"
In sanitizer_common_syscalls.inc we have issuels like:
"clang-tidy: error: unknown type name '__sanitizer_iovec'"
- moved linux agents to a new node pool (basically renamed old one)
- removed some out of date scripts or moved them to playlists
- removed shell scrips invoked from jenkins
- minor docs updates
Some python classes methods are not used anymore and will be cleaned up
separately.
https://ccache.dev/manual/3.7.11.html#_configuration uses CCACHE_DIR to set
cache directory. CCACHE_PATH has a different meaning.
+ removed LLVM_CCACHE_DIR ccache argument to use CCACHE_DIR from env.
+ print additional info about ccache config and machine readable stats.
Both files include GPU header files for which clang implicitly adds include directories. However, clang-tidy does not and therefore we get compile errors (i.e. not diagnostics that we could disable with NOLINT).
- Fix for #207. Previously grep was exiting with 1 and fail build if all
lines from ninja are filtered. Also piping might hide exit code of the
initial command. Now "tee" and "grep" is implemented on python level
and we get exit code of the original command.
- Fixed default value of "scripts_branch", print scripts commit;
- Added option to filter ninja output (on by default as before).
- Copied cache usege reporting and error handling from "master" branch
build to diff checks (useful for debugging).
apt.llvm.org signature has changed, we also should use debian:stable
(=buster) as a base image to correctly install packages.
Removed jdk from the base image as it was used only by Jenkins.
Log packages version for every build.
Related issues: #112
libclc implements OpenCL C, which is not actual C/C++, and implements an
external API with different naming conventions.
As clang-tidy cannot parse the source[0], just blacklist all of libclc's
sources for now.
[0]: https://buildkite.com/llvm-project/premerge-checks/builds/695
- configured sccache on buildkite windows machines
- final result is sent to phabricator from "summary.py" that waits for both builds to complete
- extracted "add_url_artifact" to a runnable script
- reorganized code and fixed some of TODOs
I have tried to install new windows machine for buildkite and updated
some scrips and docs on along the way.
- Updated base image for k8s agent installation as it gave a warning that
previous version was old.
- Now buildkite secret is configured in a powershell script along with
tags (and possible other parameters).
- Split "windows_agent_start.ps1" to "..jenkins" and "..buildkite" as
some parameters are different.
- Created a "windows-development" machine in GCP stat can be resumed
to build docker images / expriment.
Harbormaster can send a request in url encoded form while buildkite
expects a POST request with json. Instead of modifying harbormastar or
buildkite this adds a simple proxy that accepts url encoded form and
creates a request that buildkite expects. To avoid potential abuse,
nginx asks for simple http auth credentials stored in harbormaster.
All build parameters passed by proxy are put into build metadata and as
ph_* env variables available during the build.
Secrets involved:
- harbormastert knows http-auth to proxy (stored in privatly and in k8
buildkite/http-auth as auth file);
- proxy knows buildkite api token (mine atm);
- build agent knows conduit API token (mine atm),
and SSH key of llvm-premerge-tests-bot (in k8 buildkite/github-ssh).
Sample build: https://reviews.llvm.org/harbormaster/build/64828/8/https://buildkite.com/llvm-project/premerge/builds/48