1#!/usr/bin/env bash
2#===----------------------------------------------------------------------===##
3#
4# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5# See https://llvm.org/LICENSE.txt for license information.
6# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7#
8#===----------------------------------------------------------------------===##
9
10#
11# This file generates a Buildkite pipeline that triggers the libc++ CI
12# job(s) if needed.
13# See https://buildkite.com/docs/agent/v3/cli-pipeline#pipeline-format.
14#
15# Invoked by CI on pre-merge check for a commit.
16#
17
18if ! git diff --name-only HEAD~1 | grep -q -E "^libcxx/|^libcxxabi/|^libunwind/|^runtimes/|^cmake/|^clang/"; then
19  # libcxx/, libcxxabi/, libunwind/, runtimes/, cmake/ or clang/ are not affected
20  exit 0
21fi
22
23reviewID="$(git log --format=%B -n 1 | sed -nE 's/^Review-ID:[[:space:]]*(.+)$/\1/p')"
24if [[ "${reviewID}" != "" ]]; then
25  buildMessage="https://llvm.org/${reviewID}"
26else
27  buildMessage="Push to branch ${BUILDKITE_BRANCH}"
28fi
29
30
31cat <<EOF
32steps:
33  - trigger: "libcxx-ci"
34    build:
35      message: "${buildMessage}"
36      commit: "${BUILDKITE_COMMIT}"
37      branch: "${BUILDKITE_BRANCH}"
38EOF
39