summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-08-12 20:21:04 -0400
committerNick Mathewson <nickm@torproject.org>2020-08-12 20:21:04 -0400
commit8bd79bd75e760e7493c2fc7dcf5b38d453ea9f13 (patch)
treed4491bc3b4a163f668937129f298e8a36ecb9441
parenta2e64b3e85da186eaaf87fff939cc1c5b36a2f5e (diff)
parent9d77ed7be2da18bef3ab1258f277c527347a94a7 (diff)
downloadtor-0.4.4.4-rc.tar.gz
tor-0.4.4.4-rc.zip
Merge branch 'maint-0.4.4' into release-0.4.4tor-0.4.4.4-rc
-rw-r--r--.gitlab-ci.yml34
-rwxr-xr-xscripts/ci/ci-driver.sh34
2 files changed, 52 insertions, 16 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8ed615687b..176c71f8f0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,6 +37,7 @@ variables:
paths:
- artifacts/
+# This template
.apt-template: &apt-template |
export LC_ALL=C.UTF-8
echo Etc/UTC > /etc/timezone
@@ -57,12 +58,18 @@ variables:
<<: *artifacts-template
variables:
DEBIAN_FRONTEND: "noninteractive"
+ # TODO: Using "cache" in this way speeds up our downloads. It would be
+ # even better, though, to start with a pre-upgraded debian image.
+ #
+ # TODO: Will we have to do this differently once we have more than one
+ # debian version that we're using?
cache:
key: apt
paths:
- apt-cache
before_script:
- *apt-template
+ # Install patches unconditionally.
- apt-get install
automake
build-essential
@@ -76,23 +83,29 @@ variables:
pkg-config
python3
zlib1g-dev
+ # Install patches that we only need for some use cases.
- if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; fi
- 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
+ # 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.
- if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi
+# Minmal check on debian: just make, make check.
+#
debian-minimal:
image: debian:stable
<<: *debian-template
script:
- ./scripts/ci/ci-driver.sh
-
-# TODO: This one just takes too long to finish right now!
-# Maybe we need to divide the call to ./src/test/test into a few segments,
-# that all end in similar amount of time?
+#####
+# Run "make check" with a hardened clang on debian stable. This takes
+# care of a hardening check, and a compile-with-clang check.
+#
+# TODO: This will be faster once we merge #40098 and #40099.
debian-hardened:
image: debian:testing
<<: *debian-template
@@ -102,6 +115,8 @@ debian-hardened:
script:
- ./scripts/ci/ci-driver.sh
+#####
+# Distcheck on debian stable
debian-distcheck:
image: debian:stable
<<: *debian-template
@@ -111,6 +126,8 @@ debian-distcheck:
script:
- ./scripts/ci/ci-driver.sh
+#####
+# Documentation tests on debian stable: doxygen and asciidoc.
debian-docs:
image: debian:stable
<<: *debian-template
@@ -122,12 +139,19 @@ debian-docs:
script:
- ./scripts/ci/ci-driver.sh
+#####
+# Integration tests on debian stable: chutney and stem.
+#
+# TODO: It would be cool if this target didn't have to re-build tor, and
+# could instead re-use Tor from debian-minimal. That can be done
+# with the 'artifacts' mechanism, in theory, but it would be good to
+# avoid having to have a system with hundreds of artifacts.
debian-integration:
image: debian:stable
<<: *debian-template
variables:
CHECK: "no"
CHUTNEY: "yes"
- # STEM: "yes" -- currently failing on <044.
+ STEM: "yes"
script:
- ./scripts/ci/ci-driver.sh
diff --git a/scripts/ci/ci-driver.sh b/scripts/ci/ci-driver.sh
index 6faffd7b40..527bba82e5 100755
--- a/scripts/ci/ci-driver.sh
+++ b/scripts/ci/ci-driver.sh
@@ -267,18 +267,26 @@ TOR_VERSION=$(grep -m 1 AC_INIT configure.ac | sed -e 's/.*\[//; s/\].*//;')
# Use variables like these when we need to behave differently depending on
# Tor version. Only create the variables we need.
TOR_VER_AT_LEAST_043=no
+TOR_VER_AT_LEAST_044=no
# These are the currently supported Tor versions; no need to work with anything
# ancient in this script.
case "$TOR_VERSION" in
0.3.*)
TOR_VER_AT_LEAST_043=no
+ TOR_VER_AT_LEAST_044=no
;;
0.4.[012].*)
TOR_VER_AT_LEAST_043=no
+ TOR_VER_AT_LEAST_044=no
+ ;;
+ 0.4.3.*)
+ TOR_VER_AT_LEAST_043=yes
+ TOR_VER_AT_LEAST_044=no
;;
*)
TOR_VER_AT_LEAST_043=yes
+ TOR_VER_AT_LEAST_044=yes
;;
esac
@@ -427,21 +435,25 @@ fi
if [[ "${STEM}" = "yes" ]]; then
start_section "Stem"
- # XXXX This shold probably be part some test-stem make target.
- if runcmd timelimit -p -t 520 -s USR1 -T 30 -S ABRT \
- python3 "${STEM_PATH}/run_tests.py" \
- --tor src/app/tor \
- --integ --test control.controller \
- --test control.base_controller \
- --test process \
- --log TRACE \
- --log-file stem.log ; then
- hooray "Stem tests have succeeded"
- else
+ if [[ "${TOR_VER_AT_LEAST_044}" = 'yes' ]]; then
+ # XXXX This shold probably be part some test-stem make target.
+ if runcmd timelimit -p -t 520 -s USR1 -T 30 -S ABRT \
+ python3 "${STEM_PATH}/run_tests.py" \
+ --tor src/app/tor \
+ --integ --test control.controller \
+ --test control.base_controller \
+ --test process \
+ --log TRACE \
+ --log-file stem.log ; then
+ hooray "Stem tests have succeeded"
+ else
error "Stem output:"
runcmd tail -1000 "${STEM_PATH}"/test/data/tor_log
runcmd grep -v "SocketClosed" stem.log | tail -1000
FAILED_TESTS="${FAILED_TESTS} stem"
+ fi
+ else
+ skipping "Stem: broken with <= 0.4.3. See bug tor#40077"
fi
end_section "Stem"
fi