mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

This provides "make sync-repos" to check out all locally available testsuites at the commits indicated in their commit files, and "make sync-commits" to update the commit files to the HEADs of the local testsuite repos. Also adds the commit -> repo sync for the Makefile init target so initialization always lands on the right version, and removes the corresponding explicit checkout from the CI repo setup.
72 lines
2.3 KiB
Bash
Executable file
72 lines
2.3 KiB
Bash
Executable file
#! /usr/bin/env bash
|
|
|
|
function banner {
|
|
local msg="${1}"
|
|
printf "+--------------------------------------------------------------+\n"
|
|
printf "| %-60s |\n" "$(date)"
|
|
printf "| %-60s |\n" "${msg}"
|
|
printf "+--------------------------------------------------------------+\n"
|
|
}
|
|
|
|
set -e
|
|
|
|
cd testing/external
|
|
[[ ! -d zeek-testing ]] && make init
|
|
cd zeek-testing
|
|
|
|
if [[ -n "${CIRRUS_CI}" ]]; then
|
|
if [[ -d ../zeek-testing-traces ]]; then
|
|
banner "Use existing/cached zeek-testing traces"
|
|
else
|
|
banner "Create cache directory for zeek-testing traces"
|
|
mkdir ../zeek-testing-traces
|
|
fi
|
|
|
|
rm -rf Traces
|
|
ln -s ../zeek-testing-traces Traces
|
|
fi
|
|
|
|
make update-traces
|
|
cd ..
|
|
|
|
# When running in Cirrus for the main repo, try to clone the private testsuite.
|
|
# Note that this script is also called when populating the public cache, so
|
|
# the zeek-testing-private dir could have been created/populated already.
|
|
if [[ -n "${CIRRUS_CI}" ]] && [[ "${CIRRUS_REPO_OWNER}" == "zeek" ]] && [[ ! -d zeek-testing-private ]]; then
|
|
# If we're running this on Cirrus, the SSH key won't be available to PRs,
|
|
# so don't make any of this fail the task in that case. (But technically,
|
|
# the key is also available in PRs for people with write access to the
|
|
# repo, so we can still try for those cases).
|
|
if [[ -n "${CIRRUS_PR}" ]]; then
|
|
if [[ "${CIRRUS_USER_PERMISSION}" == "write" ]]; then
|
|
set -e
|
|
elif [[ "${CIRRUS_USER_PERMISSION}" == "admin" ]]; then
|
|
set -e
|
|
else
|
|
set +e
|
|
fi
|
|
else
|
|
set -e
|
|
fi
|
|
|
|
banner "Trying to clone zeek-testing-private git repo"
|
|
echo "${ZEEK_TESTING_PRIVATE_SSH_KEY}" >cirrus_key.b64
|
|
base64 -d cirrus_key.b64 >cirrus_key
|
|
rm cirrus_key.b64
|
|
chmod 600 cirrus_key
|
|
git --version
|
|
# Note: GIT_SSH_COMMAND requires git 2.3.0+
|
|
export GIT_SSH_COMMAND="ssh -i cirrus_key -F /dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
|
|
git clone git@github.com:zeek/zeek-testing-private
|
|
rm cirrus_key
|
|
fi
|
|
|
|
set -e
|
|
|
|
if [[ -d zeek-testing-private ]]; then
|
|
# Note that we never cache private pcaps.
|
|
banner "Update zeek-testing-private traces"
|
|
cd zeek-testing-private
|
|
git checkout -q $(cat ../commit-hash.zeek-testing-private)
|
|
make update-traces
|
|
fi
|