aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-09-21 12:59:03 -0400
committerNick Mathewson <nickm@torproject.org>2020-09-21 12:59:03 -0400
commit0d78fbb718ae44aaf739ec644e7d5f3ae65771ea (patch)
treefa4469e380f846420c8c1413b321a84944b8f74c
parentb643ced0224268dfe3d9c3617b3a77f8aec6205e (diff)
parent8458c8211ec3755400933edc6287baa810f5f695 (diff)
downloadtor-0d78fbb718ae44aaf739ec644e7d5f3ae65771ea.tar.gz
tor-0d78fbb718ae44aaf739ec644e7d5f3ae65771ea.zip
Merge branch 'maint-0.3.5' into maint-0.4.3
-rw-r--r--.gitlab-ci.yml46
-rwxr-xr-xscripts/ci/ci-driver.sh20
2 files changed, 66 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ce279a4bce..ba61c71b2b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -89,6 +89,7 @@ variables:
- if [ "$DOXYGEN" = yes ]; then apt-get install doxygen; fi
- if [ "$STEM" = yes ]; then apt-get install timelimit; fi
- if [ "$CC" = clang ]; then apt-get install clang; fi
+ - if [ "$NSS" = yes ]; then apt-get install libnss3 libnss3-dev; fi
# TODO: This next line should not be debian-only.
- 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.
@@ -112,6 +113,7 @@ debian-hardened:
image: debian:testing
<<: *debian-template
variables:
+ ALL_BUGS_ARE_FATAL: "yes"
HARDENING: "yes"
CC: "clang"
script:
@@ -154,7 +156,9 @@ debian-integration:
variables:
CHECK: "no"
CHUTNEY: "yes"
+ CHUTNEY_MAKE_TARGET: "test-network-all"
STEM: "yes"
+ ALL_BUGS_ARE_FATAL: "yes"
script:
- ./scripts/ci/ci-driver.sh
@@ -180,3 +184,45 @@ debian-tracing:
- if: '$CI_PIPELINE_SOURCE == "push"'
exists:
- src/lib/trace/trace_sys.c
+
+#####
+# No-authority mode
+debian-disable-dirauth:
+ image: debian:stable
+ <<: *debian-template
+ variables:
+ DISABLE_DIRAUTH: "yes"
+ script:
+ - ./scripts/ci/ci-driver.sh
+
+#####
+# No-relay mode
+debian-disable-relay:
+ image: debian:stable
+ <<: *debian-template
+ variables:
+ DISABLE_RELAY: "yes"
+ script:
+ - ./scripts/ci/ci-driver.sh
+ # Ensure that we only run tracing when it's implemented.
+ #
+ # Once versions before 0.4.3 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/feature/relay/relay_stub.c
+
+#####
+# NSS check on debian
+debian-nss:
+ image: debian:stable
+ <<: *debian-template
+ variables:
+ NSS: "yes"
+ script:
+ - ./scripts/ci/ci-driver.sh
diff --git a/scripts/ci/ci-driver.sh b/scripts/ci/ci-driver.sh
index cd91a91bbf..67a95a1f61 100755
--- a/scripts/ci/ci-driver.sh
+++ b/scripts/ci/ci-driver.sh
@@ -34,6 +34,10 @@ RUST="${RUST:-no}"
DOXYGEN="${DOXYGEN:-no}"
ASCIIDOC="${ASCIIDOC:-no}"
TRACING="${TRACING:-no}"
+ALL_BUGS_ARE_FATAL="${ALL_BUGS_ARE_FATAL:-no}"
+DISABLE_DIRAUTH="${DISABLE_DIRAUTH:-no}"
+DISABLE_RELAY="${DISABLE_RELAY:-no}"
+NSS="${NSS:-no}"
# Options for which tests to run. All should be yes/no.
CHECK="${CHECK:-yes}"
@@ -193,6 +197,10 @@ yes_or_no RUST
yes_or_no DOXYGEN
yes_or_no ASCIIDOC
yes_or_no TRACING
+yes_or_no ALL_BUGS_ARE_FATAL
+yes_or_no DISABLE_DIRAUTH
+yes_or_no DISABLE_RELAY
+yes_or_no NSS
yes_or_no RUN_STAGE_CONFIGURE
yes_or_no RUN_STAGE_BUILD
@@ -246,6 +254,18 @@ fi
if [[ "$TRACING" == "yes" ]]; then
configure_options+=("--enable-tracing-instrumentation-lttng")
fi
+if [[ "$ALL_BUGS_ARE_FATAL" == "yes" ]]; then
+ configure_options+=("--enable-all-bugs-are-fatal")
+fi
+if [[ "$DISABLE_DIRAUTH" == "yes" ]]; then
+ configure_options+=("--disable-module-dirauth")
+fi
+if [[ "$DISABLE_RELAY" == "yes" ]]; then
+ configure_options+=("--disable-module-relay")
+fi
+if [[ "$NSS" == "yes" ]]; then
+ configure_options+=("--enable-nss")
+fi
#############################################################################
# Tell the user about our versions of different tools and packages.