diff options
author | Alberto Sartori <alberto.sartori@huawei.com> | 2023-01-18 14:26:14 +0100 |
---|---|---|
committer | Alberto Sartori <alberto.sartori@huawei.com> | 2023-01-20 11:58:07 +0100 |
commit | 3d95b0adc81d155ad9020e9efbc50799c89953ff (patch) | |
tree | f7b391ff47439a4d09b1309326b9d6bbcef13654 /test/end-to-end/target-cache | |
parent | fe8983f3444ca0f287d54d673ddda3aa9fb1a17c (diff) | |
download | justbuild-3d95b0adc81d155ad9020e9efbc50799c89953ff.tar.gz |
tests: pass tls certificates and key
Diffstat (limited to 'test/end-to-end/target-cache')
-rw-r--r-- | test/end-to-end/target-cache/TARGETS | 2 | ||||
-rw-r--r-- | test/end-to-end/target-cache/artifacts-sync.sh | 22 | ||||
-rw-r--r-- | test/end-to-end/target-cache/target-cache-hit.sh | 19 |
3 files changed, 34 insertions, 9 deletions
diff --git a/test/end-to-end/target-cache/TARGETS b/test/end-to-end/target-cache/TARGETS index 09057dd2..83af5993 100644 --- a/test/end-to-end/target-cache/TARGETS +++ b/test/end-to-end/target-cache/TARGETS @@ -5,6 +5,7 @@ , "deps": [ ["test/end-to-end", "tool-under-test"] , ["test/end-to-end", "mr-tool-under-test"] + , ["@", "credentials", "", ""] ] } , "artifacts-sync": @@ -16,6 +17,7 @@ , ["./", "test-data-artifacts-sync", "greetlib"] , ["./", "test-data-artifacts-sync", "pydicts"] , "bootstrap-src-staged" + , ["@", "credentials", "", ""] ] } , "bootstrap-src-staged": diff --git a/test/end-to-end/target-cache/artifacts-sync.sh b/test/end-to-end/target-cache/artifacts-sync.sh index c4f75f51..552e04aa 100644 --- a/test/end-to-end/target-cache/artifacts-sync.sh +++ b/test/end-to-end/target-cache/artifacts-sync.sh @@ -57,6 +57,7 @@ readonly JUST_MR="$ROOT/foo/bin/just-mr.py" readonly JUST_RULES="$ROOT/foo/rules" readonly LBRDIR="$TEST_TMPDIR/local-build-root" readonly TESTDIR="$TEST_TMPDIR/test-root" +readonly CREDENTIALS_DIR="${PWD}/credentials" if [ "${REMOTE_EXECUTION_ADDRESS:-}" = "" ]; then echo @@ -70,6 +71,17 @@ if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then REMOTE_EXECUTION_ARGS="$REMOTE_EXECUTION_ARGS --remote-execution-property $REMOTE_EXECUTION_PROPERTIES" fi +AUTH_ARGS="" +if [ -f "${CREDENTIALS_DIR}/ca.crt" ]; then + AUTH_ARGS=" --tls-ca-cert ${CREDENTIALS_DIR}/ca.crt " + if [ -f "${CREDENTIALS_DIR}/client.crt" ]; then + AUTH_ARGS=" --tls-client-cert ${CREDENTIALS_DIR}/client.crt "${AUTH_ARGS} + fi + if [ -f "${CREDENTIALS_DIR}/client.key" ]; then + AUTH_ARGS=" --tls-client-key ${CREDENTIALS_DIR}/client.key "${AUTH_ARGS} + fi +fi + if [ "${COMPATIBLE:-}" = "YES" ]; then ARGS="--compatible" HASH_TYPE="compatible-sha256" @@ -121,7 +133,7 @@ echo "Local execution ID: $LOCAL_EXECUTION_ID" rm -rf "$TCDIR" # Determine remote execution ID -"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build main $ARGS $REMOTE_EXECUTION_ARGS +"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build main $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} readonly REMOTE_EXECUTION_ID=$(ls -1 "$TCDIR" | head -n1) echo "Remote execution ID: $REMOTE_EXECUTION_ID" rm -rf "$TCDIR" @@ -155,7 +167,7 @@ sed -i "s|RANDOM_STRING_1 \".*\"|RANDOM_STRING_1 \"$RANDOM_STRING\"|" greet/incl sed -i "s|RANDOM_STRING_2 \".*\"|RANDOM_STRING_2 \"$RANDOM_STRING\"|" greet/src/greet.cpp # Build greetlib remotely -"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" --main main build main $ARGS $REMOTE_EXECUTION_ARGS +"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" --main main build main $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} # Check if file and tree artifacts have been downloaded correctly readonly TC_HASH=$(get_tc_hash $REMOTE_EXECUTION_ID) @@ -181,7 +193,7 @@ sed -i "s|RANDOM_STRING_2 \".*\"|RANDOM_STRING_2 \"$RANDOM_STRING\"|" greet/src/ mv "$TCDIR/$LOCAL_EXECUTION_ID" "$TCDIR/$REMOTE_EXECUTION_ID" # Check if greetlib successfully builds remotely -"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" --main main build main $ARGS $REMOTE_EXECUTION_ARGS +"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" --main main build main $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} # Clean up test files rm -rf "$TESTDIR" "$LBRDIR" @@ -209,7 +221,7 @@ sed -i "s|\"foo\": \"[^\"]*\"|\"foo\": \"$RANDOM_STRING\"|" foo.py sed -i "s|\"foo\": \"[^\"]*\"|\"foo\": \"$RANDOM_STRING\"|" bar.py # Build pydicts remotely -"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build json_from_py $ARGS $REMOTE_EXECUTION_ARGS +"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build json_from_py $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} # 'exported_py' target contains a provides map, # which contains an abstract node (type 'convert'), @@ -244,7 +256,7 @@ sed -i "s|\"foo\": \"[^\"]*\"|\"foo\": \"$RANDOM_STRING\"|" bar.py mv "$TCDIR/$LOCAL_EXECUTION_ID" "$TCDIR/$REMOTE_EXECUTION_ID" # Check if pydicts successfully builds remotely -"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build json_from_py $ARGS $REMOTE_EXECUTION_ARGS +"$JUST_MR" --norc --just "$JUST" --local-build-root "$LBRDIR" build json_from_py $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} # Clean up test files rm -rf "$TESTDIR" "$LBRDIR" diff --git a/test/end-to-end/target-cache/target-cache-hit.sh b/test/end-to-end/target-cache/target-cache-hit.sh index e4776f2f..0b7252ae 100644 --- a/test/end-to-end/target-cache/target-cache-hit.sh +++ b/test/end-to-end/target-cache/target-cache-hit.sh @@ -20,6 +20,7 @@ readonly JUST="$PWD/bin/tool-under-test" readonly JUST_MR="$PWD/bin/mr-tool-under-test" readonly LBRDIR="$TEST_TMPDIR/local-build-root" readonly TESTDIR="$TEST_TMPDIR/test-root" +readonly CREDENTIALS_DIR="${PWD}/credentials" # create project files including an exported target mkdir -p "$TESTDIR" @@ -60,13 +61,23 @@ export CONF="$("$JUST_MR" -C repos.json --local-build-root="$LBRDIR" setup main) "$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS 2>&1 REMOTE_EXECUTION_ARGS="" +AUTH_ARGS="" if [ "${REMOTE_EXECUTION_ADDRESS:-}" != "" ]; then - REMOTE_EXECUTION_ARGS="-r $REMOTE_EXECUTION_ADDRESS" + REMOTE_EXECUTION_ARGS="-r ${REMOTE_EXECUTION_ADDRESS}" if [ "${REMOTE_EXECUTION_PROPERTIES:-}" != "" ]; then - REMOTE_EXECUTION_ARGS="$REMOTE_EXECUTION_ARGS --remote-execution-property $REMOTE_EXECUTION_PROPERTIES" + REMOTE_EXECUTION_ARGS="${REMOTE_EXECUTION_ARGS} --remote-execution-property ${REMOTE_EXECUTION_PROPERTIES}" + fi + if [ -f "${CREDENTIALS_DIR}/ca.crt" ]; then + AUTH_ARGS=" --tls-ca-cert ${CREDENTIALS_DIR}/ca.crt " + if [ -f "${CREDENTIALS_DIR}/client.crt" ]; then + AUTH_ARGS=" --tls-client-cert ${CREDENTIALS_DIR}/client.crt "${AUTH_ARGS} + fi + if [ -f "${CREDENTIALS_DIR}/client.key" ]; then + AUTH_ARGS=" --tls-client-key ${CREDENTIALS_DIR}/client.key "${AUTH_ARGS} + fi fi fi # build project twice remotely to trigger a target cache hit -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 -"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS 2>&1 +"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} 2>&1 +"$JUST" build -C "$CONF" main --local-build-root="$LBRDIR" $ARGS $REMOTE_EXECUTION_ARGS ${AUTH_ARGS} 2>&1 |