1
0
Fork 0
No description
Find a file
Mikhail Goncharov a152d97e3c Simple service to integrate harbormaster w/ buildkite
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
2020-05-13 13:13:33 +02:00
.github/ISSUE_TEMPLATE Update bug_report.md 2019-12-11 16:06:13 +01:00
containers Simple service to integrate harbormaster w/ buildkite 2020-05-13 13:13:33 +02:00
docs explained docker containers 2020-05-12 09:02:20 +02:00
Jenkins extending timeout to 30 minutes 2020-05-08 15:45:16 +02:00
kubernetes Simple service to integrate harbormaster w/ buildkite 2020-05-13 13:13:33 +02:00
phabricator-proxy Simple service to integrate harbormaster w/ buildkite 2020-05-13 13:13:33 +02:00
scripts Simple service to integrate harbormaster w/ buildkite 2020-05-13 13:13:33 +02:00
.gitignore ignoring .DS_Store 2020-05-06 12:44:16 +02:00
k8s_config added windows cluster 2020-02-03 12:41:54 +01:00
LICENSE added license 2019-10-04 14:31:57 +02:00
local_setup.sh Add 2 more jenkins nodes. 2019-10-14 12:22:25 +02:00
README.md Update README.md 2020-05-11 09:55:53 +02:00

Overview

This repository contains the configuration files for the pre-merge checks for the LLVM project. This github project contains the documentation and the server configuration cluster of build machines that are used to check all incoming commits to the LLVM project.

User documentation

See docs/user_doc.md

Cluster overview

The cluster consists of these services:

deployment diagram

Jenkins-Phabricator integration

The Jenkins-Phabricator is based on the instructions provided with the Phabricator-Jenkins Plugin.

On the Phabricator side these things were configured:

On the Jenkins side:

  • in the Jenkins configuration page as explained in the instrucitons
  • in the build job
  • The Phabricator pluging is not used, as it's not flexible enough. Rather Phabricator just triggers the build via an HTTP request. The arc patch operations by scripts. The build feedback is also uploaded by scripts via the harbormaster.sendmessage and differential.revision.edit APIs.

There is no backup of the credentials. If you need to change it, generate a new one and update it in Jenkins and Phabricator.

Additional Information

License

This project is licensed unter the "Apache 2.0 with LLVM Exception" license. See LICENSE for details.