Commit 62c945c2 authored by Omid Azizi's avatar Omid Azizi
Browse files

bazel_build_deps.sh: Include libraries too

Summary:
Makes sure that if a source file affects a library but not a binary, the dependent library is still added to the buildables.

Triggered by a case where a file was under development, with no enabled test, which ended up breaking a coverage build on main.

Test Plan: Jenkins

Reviewers: vihang, zasgar, #engineering

Reviewed By: vihang, #engineering

Differential Revision: https://phab.corp.pixielabs.ai/D7507

GitOrigin-RevId: 032de79b3e3d550bd9ab7fff2db8e7ba1db7bb71
parent 84828aeb
main snyk-fix-7eb526f73c75336b865418bda117e40b snyk-fix-a916784efb9d8870d42eeba63409bf85 release/vizier/vv0.9.8-pre-test.27 release/vizier/v0.11.7 release/vizier/v0.11.6 release/vizier/v0.11.5 release/vizier/v0.11.4 release/vizier/v0.11.3 release/vizier/v0.11.2 release/vizier/v0.11.1 release/vizier/v0.11.0 release/vizier/v0.10.22 release/vizier/v0.10.21 release/vizier/v0.10.20 release/vizier/v0.10.19 release/vizier/v0.10.18 release/vizier/v0.10.17 release/vizier/v0.10.16 release/vizier/v0.10.15 release/vizier/v0.10.14 release/vizier/v0.10.13 release/vizier/v0.10.12 release/vizier/v0.10.11 release/vizier/v0.10.10 release/vizier/v0.10.9 release/vizier/v0.10.8 release/vizier/v0.10.7 release/vizier/v0.10.6 release/vizier/v0.10.5 release/vizier/v0.10.4 release/vizier/v0.10.3 release/vizier/v0.10.2 release/vizier/v0.10.1 release/vizier/v0.10.0 release/vizier/v0.9.16 release/vizier/v0.9.14 release/vizier/v0.9.14-pre-main.5 release/vizier/v0.9.13 release/vizier/v0.9.13-pre-r0.17 release/vizier/v0.9.12 release/vizier/v0.9.12-pre-r0.1 release/vizier/v0.9.11 release/vizier/v0.9.11-pre-r0.32 release/vizier/v0.9.11-pre-r0.29 release/vizier/v0.9.11-pre-main.9 release/vizier/v0.9.8 release/vizier/v0.9.8-pre-test.27 release/vizier/v0.9.8-pre-test2.28 release/vizier/v0.9.7 release/vizier/v0.9.7-pre-r0.7 release/vizier/v0.9.7-pre-main.27 release/vizier/v0.9.6 release/vizier/v0.9.5 release/vizier/v0.9.5-pre-r0.13 release/vizier/v0.9.5-pre-main.18 release/vizier/v0.9.5-pre-main.17 release/vizier/v0.9.5-pre-main.14 release/vizier/v0.9.5-pre-etcdConfig.15 release/vizier/v0.9.4 release/vizier/v0.9.3 release/vizier/v0.9.2 release/vizier/v0.9.1 release/vizier/v0.9.0 release/vizier/v0.8.10 release/vizier/v0.8.9 release/vizier/v0.8.8 release/vizier/v0.8.7 release/vizier/v0.8.6 release/vizier/v0.8.5 release/vizier/v0.8.3 release/vizier/v0.8.2 release/vizier/v0.8.1 release/vizier/v0.8.0 release/vizier/v0.7.19 release/vizier/v0.7.18 release/vizier/v0.7.17 release/vizier/v0.7.16 release/vizier/v0.7.15 release/vizier/v0.7.14 release/vizier/v0.7.13 release/vizier/v0.7.12 release/vizier/v0.7.11 release/vizier/v0.7.10 release/vizier/v0.7.9 release/vizier/v0.7.8 release/vizier/v0.7.7 release/vizier/v0.7.6 release/vizier/v0.7.5 release/vizier/v0.7.4 release/vizier/v0.7.3 release/vizier/v0.7.2 release/vizier/v0.7.1 release/vizier/v0.6.5 release/vizier/v0.6.4 release/vizier/v0.6.3 release/vizier/v0.6.2 release/vizier/v0.6.1 release/vizier/v0.6.0 release/vizier/v0.5.34 release/vizier/v0.5.32 release/vizier/v0.5.31 release/vizier/v0.5.30 release/operator/v0.0.30 release/operator/v0.0.29 release/operator/v0.0.28 release/operator/v0.0.27 release/operator/v0.0.26 release/operator/v0.0.25 release/operator/v0.0.24 release/operator/v0.0.23 release/operator/v0.0.22 release/operator/v0.0.21 release/operator/v0.0.20 release/operator/v0.0.19 release/operator/v0.0.18 release/operator/v0.0.17 release/operator/v0.0.16 release/operator/v0.0.15 release/operator/v0.0.15-pre-r0.6 release/operator/v0.0.14 release/operator/v0.0.14-pre-zOperator3.8 release/operator/v0.0.14-pre-r0.8 release/operator/v0.0.13 release/operator/v0.0.13-pre-test.5 release/operator/v0.0.13-pre-main.5 release/operator/v0.0.12 release/operator/v0.0.12-pre-main.6 release/operator/v0.0.11 release/operator/v0.0.10 release/operator/v0.0.9 release/operator/v0.0.7 release/operator/v0.0.5 release/operator/v0.0.2 release/cloud/staging/1637355758 release/cloud/staging/1637266321 release/cloud/staging/1637083942 release/cloud/staging/1636658412 release/cloud/staging/1636655115 release/cloud/staging/1636566009 release/cloud/staging/1636486580 release/cloud/staging/1635273164 release/cloud/staging/1634664761 release/cloud/staging/1634662582 release/cloud/staging/1634426539 release/cloud/staging/1634255213 release/cloud/staging/1633889214 release/cloud/staging/1633467640 release/cloud/staging/1633377421 release/cloud/staging/1632931048 release/cloud/staging/1632880554 release/cloud/staging/1631813710 release/cloud/staging/1631205641 release/cloud/prod/1658198111 release/cloud/prod/1658185818 release/cloud/prod/1658183222 release/cloud/prod/1657740688 release/cloud/prod/1657049209 release/cloud/prod/1656629056 release/cloud/prod/1656527373 release/cloud/prod/1656452950 release/cloud/prod/1655997138 release/cloud/prod/1655226092 release/cloud/prod/1654806360 release/cloud/prod/1654144074 release/cloud/prod/1654133791 release/cloud/prod/1652313416 release/cloud/prod/1652304483 release/cloud/prod/1652214656 release/cloud/prod/1651864223 release/cloud/prod/1651799821 release/cloud/prod/1651704659 release/cloud/prod/1651616922 release/cloud/prod/1650645384 release/cloud/prod/1650480744 release/cloud/prod/1650306041 release/cloud/prod/1650056868 release/cloud/prod/1650039340 release/cloud/prod/1649978499 release/cloud/prod/1649797942 release/cloud/prod/1649787581 release/cloud/prod/1649269698 release/cloud/prod/1649107437 release/cloud/prod/1648586238 release/cloud/prod/1647992139 release/cloud/prod/1647379907 release/cloud/prod/1646182041 release/cloud/prod/1644961014 release/cloud/prod/1644348245 release/cloud/prod/1643849214 release/cloud/prod/1643826488 release/cloud/prod/1643153852 release/cloud/prod/1643056106 release/cloud/prod/1643052598 release/cloud/prod/1642705917 release/cloud/prod/1642632551 release/cloud/prod/1642205277 release/cloud/prod/1642145141 release/cloud/prod/1642141551 release/cloud/prod/1642139120 release/cloud/prod/1642134238 release/cloud/prod/1642130337 release/cloud/prod/1642126826 release/cloud/prod/1642124521 release/cloud/prod/1642109235 release/cloud/prod/1641941995 release/cloud/prod/1641420513 release/cloud/prod/1641254216 release/cloud/prod/1638917470 release/cloud/prod/1637096190 release/cloud/prod/1636492829 release/cloud/prod/1635286066 release/cloud/prod/1634668183 release/cloud/prod/1634663695 release/cloud/prod/1634282223 release/cloud/prod/1633893408 release/cloud/prod/1633710125 release/cloud/prod/1633560085 release/cloud/prod/1633495949 release/cloud/prod/1633474704 release/cloud/prod/1633379527 release/cloud/prod/1632935904 release/cloud/prod/1631826310 release/cloud/prod/1630737620 release/cloud/prod/1630714187 release/cloud/prod/1630622583 release/cloud/prod/1630433362 release/cloud/prod/1630110767 release/cloud/prod/1629952882 release/cloud/prod/1629920564 release/cloud/prod/1629851112 release/cloud/prod/1629494063 release/cloud/prod/1629339917 release/cloud/prod/1629337848 release/cloud/prod/1629335332 release/cloud/prod/1629311730 release/cloud/prod/1629166688 release/cloud/prod/1629166023 release/cloud/prod/1629165964 release/cloud/prod/1629151138 release/cloud/prod/1628025334 release/cloud/prod/1627971857 release/cloud/prod/1627943140 release/cloud/prod/1627935195 release/cloud/prod/1627644793 release/cloud/prod/1627601637 release/cloud/prod/1627445520 release/cloud/prod/1627421364 release/cloud/prod/1626909202 release/cloud/prod/1626824610 release/cloud/prod/1626391194 release/cloud/prod/1626321970 release/cloud/prod/1626073778 release/cloud/prod/1625699466 release/cloud/prod/1625253333 release/cloud/prod/1625249910 release/cloud/prod/1625013333 release/cloud/prod/1625003953 release/cloud/prod/1625001388 release/cloud/prod/1624993505 release/cloud/prod/1624989299 release/cloud/prod/1623456844 release/cloud/prod/1622779032 release/cloud/prod/1621989349 release/cloud/prod/1621986389 release/cloud/prod/1621964672 release/cloud/prod/1621920686 release/cloud/prod/1621917276 release/cloud/prod/1621882022 release/cloud/prod/1620958944 release/cloud/prod/1620945558 release/cloud/prod/1620327546 release/cloud/prod/1620273211 release/cloud/prod/1620271073 release/cloud/prod/1620090826 release/cloud/prod/1619828773 release/cloud/prod/1619741770 release/cloud/prod/1619126029 release/cloud/prod/1618639797 release/cloud/prod/1618522037 release/cloud/prod/1617918178 release/cloud/prod/1617647275 release/cloud/prod/1617133715 release/cloud/prod/1616658618 release/cloud/prod/1616654932 release/cloud/prod/1616448710 release/cloud/prod/1615945400 release/cloud/prod/1615831644 release/cloud/prod/1615576886 release/cloud/prod/1615411712 release/cloud/prod/1615077380 release/cloud/prod/1614910099 release/cli/v0.7.16 release/cli/v0.7.15 release/cli/v0.7.14 release/cli/v0.7.13 release/cli/v0.7.12 release/cli/v0.7.11 release/cli/v0.7.10 release/cli/v0.7.9 release/cli/v0.7.8 release/cli/v0.7.7 release/cli/v0.7.6 release/cli/v0.7.5 release/cli/v0.7.4 release/cli/v0.7.3 release/cli/v0.7.2 release/cli/v0.7.1 release/cli/v0.7.1-pre-r0.5 release/cli/v0.7.0 release/cli/v0.7.0-pre-main.11 release/cli/v0.6.8-pre-main.9 release/cli/v0.6.7 release/cli/v0.6.6 release/cli/v0.6.5 release/cli/v0.6.4 release/cli/v0.6.3 release/cli/v0.6.2 release/cli/v0.6.1 release/cli/v0.5.14 release/cli/v0.5.13 release/cli/v0.5.12 release/cli/v0.5.11 release/cli/v0.5.9 release/cli/v0.5.8 release/cli/v0.5.7 release/cli/v0.5.6 release/cli/v0.5.5 release/cli/v0.5.4 release/cli/v0.5.3 release/cli/v0.5.2 release/cli/v0.5.1 release/cli/v0.4.0 release/cli/v0.3.29 release/cli/v0.3.28 release/cli/v0.3.27 release/cli/v0.3.26 release/cli/v0.3.25 release/cli/v0.3.24 release/cli/v0.3.23
No related merge requests found
Showing with 42 additions and 33 deletions
+42 -33
......@@ -16,6 +16,7 @@ commit_range=${commit_range:-$(git merge-base origin/main HEAD)".."}
ui_excludes="except //src/ui/..."
bpf_excludes="except attr('tags', 'requires_bpf', //...)"
darwin_excludes="except attr('goos', 'darwin', //...)"
default_excludes="except attr('tags', 'manual', //...) \
except //third_party/... \
except //experimental/... \
......@@ -78,9 +79,7 @@ done
# bazel_{buildables, tests}_bpf
# bazel_{buildables, tests}_bpf_sanitizer
buildables_kind="kind(.*_binary, //...) ${default_excludes}"
tests_kind="kind(test, //...) ${default_excludes}"
# Check poison patterns and trigger a full build if necessary.
if [ "${all_targets}" = "false" ]; then
for file in $(git diff --name-only "${commit_range}" ); do
for pat in "${poison_patterns[@]}"; do
......@@ -93,6 +92,7 @@ if [ "${all_targets}" = "false" ]; then
done
fi
# Determine the targets.
if [ "${all_targets}" = "false" ]; then
# Get a list of the current files in package form by querying Bazel.
# This step is safe to run without looking at specific configs
......@@ -103,50 +103,61 @@ if [ "${all_targets}" = "false" ]; then
files+=($(bazel query --noshow_progress "$file" || true))
done
buildables_kind="kind(.*_binary, rdeps(${target_pattern}, set(${files[*]}))) ${default_excludes}"
tests_kind="kind(test, rdeps(${target_pattern}, set(${files[*]}))) ${default_excludes}"
targets="rdeps(${target_pattern}, set(${files[*]}))"
else
targets="//..."
fi
buildables="kind(.*_binary, ${targets}) union kind(.*_library, ${targets}) ${default_excludes}"
tests="kind(test, ${targets}) ${default_excludes}"
cc_buildables="kind(cc_.*, ${buildables})"
cc_tests="kind(cc_.*, ${tests})"
go_buildables="kind(go_.*, ${buildables})"
go_tests="kind(go_.*, ${tests})"
bpf_buildables="attr('tags', 'requires_bpf', ${buildables})"
bpf_tests="attr('tags', 'requires_bpf', ${tests})"
cc_bpf_buildables="kind(cc_.*, ${bpf_buildables})"
cc_bpf_tests="kind(cc_.*, ${bpf_tests})"
# Clang:opt
${bazel_query} "${buildables_kind} ${bpf_excludes}" > bazel_buildables_clang_opt
${bazel_query} "${tests_kind} ${bpf_excludes}" > bazel_tests_clang_opt
# Clang:opt (includes non-cc targets: go targets, //src/ui/..., etc.)
${bazel_query} "${buildables} ${bpf_excludes}" > bazel_buildables_clang_opt
${bazel_query} "${tests} ${bpf_excludes}" > bazel_tests_clang_opt
# Clang:dbg
${bazel_query} "kind(cc_binary, ${buildables_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_buildables_clang_dbg
${bazel_query} "kind(cc_test, ${tests_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_tests_clang_dbg
${bazel_query} "${cc_buildables} ${bpf_excludes}" > bazel_buildables_clang_dbg
${bazel_query} "${cc_tests} ${bpf_excludes}" > bazel_tests_clang_dbg
# GCC:opt
${bazel_query} "kind(cc_binary, ${buildables_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_buildables_gcc_opt
${bazel_query} "kind(cc_test, ${tests_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_tests_gcc_opt
${bazel_query} "${cc_buildables} ${bpf_excludes}" > bazel_buildables_gcc_opt
${bazel_query} "${cc_tests} ${bpf_excludes}" > bazel_tests_gcc_opt
# Sanitizer (Limit to C++ only).
${bazel_query} "kind(cc_binary, ${buildables_kind}) ${ui_excludes} ${bpf_excludes} \
${sanitizer_only}" > bazel_buildables_sanitizer
${bazel_query} "kind(cc_test, ${tests_kind}) ${ui_excludes} ${bpf_excludes} \
${sanitizer_only}" > bazel_tests_sanitizer
${bazel_query} "${cc_buildables} ${bpf_excludes} ${sanitizer_only}" > bazel_buildables_sanitizer
${bazel_query} "${cc_tests} ${bpf_excludes} ${sanitizer_only}" > bazel_tests_sanitizer
# BPF.
${bazel_query} "attr('tags', 'requires_bpf', ${buildables_kind})" > bazel_buildables_bpf
${bazel_query} "attr('tags', 'requires_bpf', ${tests_kind})" > bazel_tests_bpf
${bazel_query} "${bpf_buildables}" > bazel_buildables_bpf
${bazel_query} "${bpf_tests}" > bazel_tests_bpf
# BPF Sanitizer (C/C++ Only).
${bazel_query} "kind(cc_binary, attr('tags', 'requires_bpf', ${buildables_kind})) \
${sanitizer_only}" > bazel_buildables_bpf_sanitizer
${bazel_query} "kind(cc_test, attr('tags', 'requires_bpf', ${tests_kind})) \
${sanitizer_only}" > bazel_tests_bpf_sanitizer
# BPF Sanitizer (C/C++ Only, excludes shell tests).
${bazel_query} "${cc_bpf_buildables} ${sanitizer_only}" > bazel_buildables_bpf_sanitizer
${bazel_query} "${cc_bpf_tests} ${sanitizer_only}" > bazel_tests_bpf_sanitizer
# Should we run clang-tidy?
${bazel_query} "kind(cc_binary, ${buildables_kind})" > bazel_buildables_clang_tidy
${bazel_query} "kind(cc_test, ${tests_kind})" > bazel_tests_clang_tidy
${bazel_query} "${cc_buildables}" > bazel_buildables_clang_tidy
${bazel_query} "${cc_tests}" > bazel_tests_clang_tidy
# Should we run golang race detection?
${bazel_query} "kind(go_binary, ${buildables_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_buildables_go_race
${bazel_query} "kind(go_test, ${tests_kind}) ${ui_excludes} ${bpf_excludes}" > bazel_tests_go_race
${bazel_query} "${go_buildables} ${darwin_excludes}" > bazel_buildables_go_race
${bazel_query} "${go_tests} ${darwin_excludes}" > bazel_tests_go_race
# Should we run doxygen?
bazel_buildables_cc=$(${bazel_query} "kind(cc_binary, ${buildables_kind})")
bazel_tests_cc=$(${bazel_query} "kind(cc_binary, ${buildables_kind})")
if [ "${all_targets}" = "true" ] || [[ -z $bazel_buildables_cc ]] || [[ -z $bazel_tests_cc ]]; then
bazel_cc_touched=$(${bazel_query} "${cc_buildables} union ${cc_tests}")
if [ "${all_targets}" = "true" ] || [[ -z $bazel_cc_touched ]]; then
touch run_doxygen
fi
#!/bin/bash
#!/bin/bash -ex
# We use GCC for building coverage code.
export CC=gcc
export CXX=g++
set -ex
# We can consider adding this file to our repo if needed.
CODECOV_VERSION="db834f033a450a75a315e72ae8490393c9b19181"
CODECOV_SCRIPT="https://raw.githubusercontent.com/codecov/codecov-bash/${CODECOV_VERSION}/codecov"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment