#### # DO NOT EDIT THIS FILE IN MASTER. ONLY EDIT IT IN THE OLDEST SUPPORTED # BRANCH, THEN MERGE FORWARD. #### # This file controls how gitlab validates Tor commits and merge requests. # # It is primarily based on a set of scripts and configurations by # Hans-Christoph Steiner. It only copies parts of those scripts and # configurations for now. If you want a new piece of functionality # (more debians, more fedoras, android support) then you shouldn't # start from scratch: have a look at the original ticket, at # https://gitlab.torproject.org/tpo/core/tor/-/issues/32193 ! # # The file to copy from is # https://gitlab.torproject.org/tpo/core/tor/-/merge_requests/96/diffs#diff-content-587d266bb27a4dc3022bbed44dfa19849df3044c # # Having said that, if there is anything really stupid here, don't # blame it on Hans-Christoph! Tor probably added it on their own. # # Copyright 2020, The Tor Project, Inc. # See LICENSE for licence information. # These variables are set everywhere, unconditionally. variables: TERM: "ansi" DEBUG_CI: "yes" # This template is for exporting ephemeral things from the scripts. By # convention we expect our scripts to copy stuff into artifacts/, rather than # having a big list of files that be treated as artifacts. .artifacts-template: &artifacts-template artifacts: name: "${CI_PROJECT_PATH}_${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}" expire_in: 1 week when: always paths: - artifacts/ .apt-template: &apt-template | export LC_ALL=C.UTF-8 echo Etc/UTC > /etc/timezone mkdir -p apt-cache export APT_CACHE_DIR="$(pwd)/apt-cache" echo 'quiet "1";' \ 'APT::Install-Recommends "0";' \ 'APT::Install-Suggests "0";' \ 'APT::Acquire::Retries "20";' \ 'APT::Get::Assume-Yes "true";' \ 'Dpkg::Use-Pty "0";' \ "Dir::Cache::Archives \"${APT_CACHE_DIR}\"; " \ >> /etc/apt/apt.conf.d/99gitlab apt-get update -qq apt-get upgrade -qy .debian-template: &debian-template <<: *artifacts-template variables: DEBIAN_FRONTEND: "noninteractive" cache: key: apt paths: - apt-cache before_script: - *apt-template - apt-get install automake build-essential ca-certificates git libevent-dev liblzma-dev libscrypt-dev libseccomp-dev libssl-dev pkg-config python3 zlib1g-dev - 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 - if [ "$STEM" = yes ]; then git clone --depth 1 https://git.torproject.org/stem.git ; export STEM_PATH="$(pwd)/stem"; fi - if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi 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? debian-hardened: image: debian:testing <<: *debian-template variables: HARDENING: "yes" CC: "clang" script: - ./scripts/ci/ci-driver.sh debian-distcheck: image: debian:stable <<: *debian-template variables: DISTCHECK: "yes" CHECK: "no" script: - ./scripts/ci/ci-driver.sh debian-docs: image: debian:stable <<: *debian-template variables: DOXYGEN: "yes" ASCIIDOC: "yes" CHECK: "no" RUN_STAGE_BUILD: "no" script: - ./scripts/ci/ci-driver.sh debian-integration: image: debian:stable <<: *debian-template variables: CHECK: "no" CHUTNEY: "yes" # STEM: "yes" -- currently failing on <044. script: - ./scripts/ci/ci-driver.sh