summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-09-18 19:06:16 -0400
committerNick Mathewson <nickm@torproject.org>2020-09-18 19:06:16 -0400
commit28bbd16dafcf9f24a451fe2d3176efd7d2ad3248 (patch)
tree368a6880b93f78d9c025523503236a6bcf5e2647
parent814fa6d636da2acd1733dcfc1cf59e12ccfc804a (diff)
parent0b77c706a1799d2ee6d8da4737bb7f152140e3c4 (diff)
downloadtor-28bbd16dafcf9f24a451fe2d3176efd7d2ad3248.tar.gz
tor-28bbd16dafcf9f24a451fe2d3176efd7d2ad3248.zip
Merge branch 'maint-0.3.5' into release-0.3.5
-rw-r--r--.gitlab-ci.yml27
-rwxr-xr-xscripts/ci/ci-driver.sh5
2 files changed, 31 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 176c71f8f0..ce279a4bce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,7 +37,7 @@ variables:
paths:
- artifacts/
-# This template
+# This template should be usable on any system that's based on apt.
.apt-template: &apt-template |
export LC_ALL=C.UTF-8
echo Etc/UTC > /etc/timezone
@@ -54,6 +54,7 @@ variables:
apt-get update -qq
apt-get upgrade -qy
+# This template sets us up for Debian system in particular.
.debian-template: &debian-template
<<: *artifacts-template
variables:
@@ -92,6 +93,7 @@ variables:
- if [ "$STEM" = yes ]; then git clone --depth 1 https://git.torproject.org/stem.git ; export STEM_PATH="$(pwd)/stem"; fi
# TODO: This next line should not be debian-only.
- if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi
+ - if [ "$TRACING" = yes ]; then apt install liblttng-ust-dev; fi
# Minmal check on debian: just make, make check.
#
@@ -155,3 +157,26 @@ debian-integration:
STEM: "yes"
script:
- ./scripts/ci/ci-driver.sh
+
+#####
+# Tracing build on Debian stable.
+debian-tracing:
+ image: debian:stable
+ <<: *debian-template
+ variables:
+ TRACING: "yes"
+ CHECK: "no"
+ script:
+ - ./scripts/ci/ci-driver.sh
+ # Ensure that we only run tracing when it's implemented.
+ #
+ # Once versions before 0.4.5 are obsolete, we can remove this test.
+ rules:
+ # This first "if" check prevents us from running a duplicate version of
+ # this pipeline whenever we push and create an MR. I don't understand why
+ # it is necessary, though the following URL purports to explain:
+ #
+ # https://docs.gitlab.com/ee/ci/yaml/#prevent-duplicate-pipelines
+ - if: '$CI_PIPELINE_SOURCE == "push"'
+ exists:
+ - src/lib/trace/trace_sys.c
diff --git a/scripts/ci/ci-driver.sh b/scripts/ci/ci-driver.sh
index 527bba82e5..cd91a91bbf 100755
--- a/scripts/ci/ci-driver.sh
+++ b/scripts/ci/ci-driver.sh
@@ -33,6 +33,7 @@ COVERAGE="${COVERAGE:-no}"
RUST="${RUST:-no}"
DOXYGEN="${DOXYGEN:-no}"
ASCIIDOC="${ASCIIDOC:-no}"
+TRACING="${TRACING:-no}"
# Options for which tests to run. All should be yes/no.
CHECK="${CHECK:-yes}"
@@ -191,6 +192,7 @@ yes_or_no COVERAGE
yes_or_no RUST
yes_or_no DOXYGEN
yes_or_no ASCIIDOC
+yes_or_no TRACING
yes_or_no RUN_STAGE_CONFIGURE
yes_or_no RUN_STAGE_BUILD
@@ -241,6 +243,9 @@ fi
if [[ "$ASCIIDOC" != "yes" ]]; then
configure_options+=("--disable-asciidoc")
fi
+if [[ "$TRACING" == "yes" ]]; then
+ configure_options+=("--enable-tracing-instrumentation-lttng")
+fi
#############################################################################
# Tell the user about our versions of different tools and packages.