diff --git a/.github/scripts/map-affected-files-to-modules.sh b/.github/scripts/map-affected-files-to-modules.sh deleted file mode 100755 index aded6d0fb9b..00000000000 --- a/.github/scripts/map-affected-files-to-modules.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -set -e - -# This script: -# 1. Finds all modules. -# 2. Maps changed files (passed as a param) to found modules. -# 3. Filters out modules that contain ignored paths (if provided). -# 4. Prints out the affected modules. -# 5. Output the result (as JSON) to a GitHub Actions environment variable. - -# Get the list of changed files as parameter (from JSON array) -changed_files=$(echo "$1" | jq -r '.[]') -echo "Changed files: $changed_files" - -# Get the list of ignored paths as parameter (from JSON array), if provided -ignored_paths="" -if [[ -n "$2" ]]; then - ignored_paths=$(echo "$2" | jq -r '.[]') - echo "Ignored paths: $ignored_paths" -fi - -# 1. Find all modules in the repository, -# - Strip the leading './' from the path -# (necessary for comparison, affected files do not have leading './') -modules=$(find . -name 'go.mod' -exec dirname {} \; | sed 's|^./||' | uniq) -echo "Found modules: $modules" - -# Use a Bash associative array to track unique modules -declare -A unique_modules - -for path_to_file in $changed_files; do - echo "Resolving a module affected by a file: '$path_to_file'" - # the flag that indicates if the path matches any module - is_path_in_modules=false - for module in $modules; do - echo "Validating against module: '$module'" - # if a module's name matches with a file path - # add it, to the affected modules array, skipping the root (`.`) - if [[ $module != "." && $path_to_file =~ ^$module* ]]; then - echo -e "File '$path_to_file' mapped to the module '$module'\n" - unique_modules["$module"]="$module" - is_path_in_modules=true - break - fi - done - # if no matched module default to root module - if [[ $is_path_in_modules == false ]]; then - echo "File '$path_to_file' did not match any module, defaulting to root '.'" - unique_modules["."]="." - is_path_in_modules=false - fi - is_path_in_modules=false -done - -# if the path is empty (for any reason), it will not get to the loop, -# so if the unique_modules array is empty, default to the root module -if [[ ${#unique_modules[@]} -eq 0 ]]; then - echo "No files were changed, defaulting to the root module '.'" - unique_modules["."]="." -fi - -# Filter out modules that contain ignored paths (only if affected modules array is not empty) -if [[ ${#unique_modules[@]} -gt 0 && -n "$ignored_paths" ]]; then - echo "Filtering out modules containing ignored paths..." - declare -A filtered_modules - - for module in "${!unique_modules[@]}"; do - should_ignore=false - for ignored_path in $ignored_paths; do - # Check if the module path contains the ignored path - if [[ $module == *"$ignored_path"* ]]; then - echo "Ignoring module '$module' because it contains ignored path '$ignored_path'" - should_ignore=true - break - fi - done - - if [[ $should_ignore == false ]]; then - filtered_modules["$module"]="$module" - fi - done - - # Replace the original array with the filtered one - unique_modules=() - for key in "${!filtered_modules[@]}"; do - unique_modules["$key"]="$key" - done - - # If all modules were filtered out, default to root module - if [[ ${#unique_modules[@]} -eq 0 ]]; then - echo "All modules were filtered out, defaulting to the root module '.'" - unique_modules["."]="." - fi -fi - -# Convert keys (module names) of the associative array to an indexed array -affected_modules=("${!unique_modules[@]}") -echo "Affected modules: ${affected_modules[@]}" - -# Convert bash array to a JSON array for GitHub Actions -json_array=$(printf '%s\n' "${affected_modules[@]}" | jq -R . | jq -s . | jq -c) -echo "module_names=$json_array" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 39a71350d88..d696ce2e864 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -38,7 +38,6 @@ concurrency: env: # for run-test variables and environment - ENV_JOB_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-tests:${{ inputs.evm-ref || github.sha }} CHAINLINK_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/${{ inputs.ecr_name || 'chainlink-integration-tests' }} CHAINLINK_REF: ${{ inputs.cl_ref || github.sha }} TEST_SUITE: smoke diff --git a/integration-tests/Makefile b/integration-tests/Makefile index 7e70886df6d..9d54a9e581d 100644 --- a/integration-tests/Makefile +++ b/integration-tests/Makefile @@ -62,15 +62,6 @@ lint: build: @go build ./... go test -run=^# ./... -# Builds the test image -# tag: the tag for the test image being built, example: tag=tate -# base_tag: the tag for the base-test-image to use, example: base_tag=latest -# suite: the test suites to build into the image, example: suite="chaos soak smoke reorg migration" -# push: set to true if you want the image pushed or leave blank if not, example: push=true -.PHONY: build_test_image -build_test_image: - ./scripts/buildTestImage $(tag) $(base_tag) "$(suite)" $(push) - #Build a chainlink docker image for local testing and push to k3d registry .PHONY: build_push_docker_image build_push_docker_image: build_docker_image @@ -83,38 +74,9 @@ run_tracing: cd ../.github/tracing docker compose -f ../.github/tracing/local-smoke-docker-compose.yaml up -## Test Runner -.PHONY: run -run: - go run . - ## All commands will use 16 threads to run tests in parallel. To change this, use -test.parallel n ## Remember to set selected_networks and CL image in the TOML file (e.g. overrides.toml) -# Smoke -.PHONY: test_smoke_product -test_smoke_product: ## Run smoke tests for specific product ex: make test_smoke_product product="cron" args="--focus @cron -p" - ARGS="$(args)" PRODUCT=$(product) ./scripts/run_product_tests - -# Migrations -.PHONY: test_node_migrations -test_node_migrations: install_gotestloghelper ## Run all node migration tests. - TEST_LOG_LEVEL="disabled" \ - go test -timeout 1h -count=1 -json $(args) ./migration 2>&1 | tee /tmp/gotest.log | gotestloghelper -json -tlogprefix -color -singlepackage -hidepassinglogs - -.PHONY: test_node_migrations_simulated -test_node_migrations_simulated: install_gotestloghelper - TEST_LOG_LEVEL="disabled" \ - go test -timeout 1h -count=1 -json $(args) ./migration 2>&1 | tee /tmp/gotest.log | gotestloghelper -json -tlogprefix -color -singlepackage -hidepassinglogs - -.PHONY: test_node_migrations_verbose -test_node_migrations_verbose: - go test -timeout 1h -count=1 -v $(args) ./migration - -.PHONY: test_node_migrations_simulated_verbose -test_node_migrations_simulated_verbose: - go test -timeout 1h -count=1 -v $(args) ./migration - .PHONY: check_github_token check_github_token: @if [ -z "$(GITHUB_TOKEN)" ]; then \ @@ -135,18 +97,6 @@ build_docker_image: check_github_token --secret id=GIT_AUTH_TOKEN,env=GITHUB_TOKEN \ -t $(image):$(tag) ../ -# image: the name for the chainlink image being built, example: image=chainlink -# tag: the tag for the chainlink image being built, example: tag=latest -# args: the args to pass to the test runner, example: args="--focus @cron -p" -# product: the product to run tests for, example: product=cron -# example usage: make run_test_with_local_image image=chainlink tag=latest-dev product=cron -# remember to put the case CL image name and tag in the TOML config (and don't forget about selected network configuration) -.PHONY: run_test_with_local_image -run_test_with_local_image: build_docker_image - ARGS="$(args)" \ - PRODUCT=$(product) \ - ./scripts/run_product_tests - # removes all occurrences of .run.id file in current folder and it's subdirectories # before making any changes lists all file locations and awaits user confirmation remove_test_execution_artefacts: diff --git a/integration-tests/README.md b/integration-tests/README.md index 2875f4fe394..63ecd804a7d 100644 --- a/integration-tests/README.md +++ b/integration-tests/README.md @@ -1,6 +1,6 @@ # Integration Tests -**DEPRECATED**: Use a new version of [developer environment](../devenv/README.md) +**DEPRECATED**: Use a new version of [developer environment](../devenv/README.md) Read more about tests [here](../devenv/tests/README.md) - [Integration Tests](#integration-tests) @@ -97,15 +97,8 @@ This directory represent a place for different types of integration and system l > **Parallelized tests and nonce issues** > Most tests are parallelized by default. To avoid nonce-related issues, it is recommended to run tests with disabled parallelization, e.g. with `-p 1`. -2. Alternatively, you may use `make` commands (see more in [Makefile .PHONY lines](./Makefile)) for running suites of tests. - Example: - - ```bash - make test_smoke_product product="ocr" ./scripts/run_product_tests - ``` - -3. Logs of each Chainlink container will dump into the `smoke/logs/`. -4. To enable debugging of HTTP and RPC clients set the following env vars: +2. Logs of each Chainlink container will dump into the `smoke/logs/`. +3. To enable debugging of HTTP and RPC clients set the following env vars: ```bash export SETH_LOG_LEVEL=debug @@ -137,18 +130,6 @@ Such tests as Soak, Performance, Benchmark, and Chaos Tests remain bound to a Ku BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) go test -v -timeout -p 1 -run '' ./ ``` - OR with `make` commands: - - ```bash - BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) make test_ - ``` - - Example (see make-commands in [Makefile .PHONY lines](./Makefile)): - - ```bash - BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) make test_chaos_ocr/make test_soak_ocr2/test_node_migrations - ``` - 4. Use Kubernetes namespace printed out in logs to monitor and analyze test runs. 5. Navigate to Grafana dashboards to for test results and logs. diff --git a/integration-tests/scripts/buildTestImage b/integration-tests/scripts/buildTestImage deleted file mode 100755 index a27556459d4..00000000000 --- a/integration-tests/scripts/buildTestImage +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -# build test binaries -# accepts a single space separated argument of the folders to build - -set -ex - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../../ || exit 1 - -TAG_VERSION="${1}" -BASE_IMAGE_VERSION="${2}" -SUITES=$3 -DEFAULT_SUITES="smoke soak chaos" -ACCOUNT=$(aws sts get-caller-identity | jq -r .Account) -AWS_BASE="${ACCOUNT}".dkr.ecr.us-west-2.amazonaws.com -TAG="${AWS_BASE}"/chainlink-tests:"${TAG_VERSION}" -BASE_IMAGE="${AWS_BASE}"/test-base-image - -if [ "${TAG_VERSION}" = "" ]; then - echo "Need an argument for the image tag version in argument 1" - exit 1 -fi - -if [ "${BASE_IMAGE_VERSION}" = "" ]; then - echo "Need an argument for the test-base-image tag version in argument 2" - exit 1 -fi - -if [ "${SUITES}" = "" ]; then - echo "SUITES not set, using defaults \"${DEFAULT_SUITES}\"" - SUITES=${DEFAULT_SUITES} -fi - -aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin ${AWS_BASE} -docker build -t "${TAG}" -f "./integration-tests/test.Dockerfile" --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg IMAGE_VERSION="${BASE_IMAGE_VERSION}" --build-arg SUITES="${SUITES}" . -if "${4}" = "true"]; then - docker push "${TAG}" -fi diff --git a/integration-tests/scripts/buildTestMatrixList.sh b/integration-tests/scripts/buildTestMatrixList.sh deleted file mode 100755 index f02362aa47a..00000000000 --- a/integration-tests/scripts/buildTestMatrixList.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash - -# requires a path to a test file to compare the test list against -# requires a matrix job name to be passed in, for example "automation" -# requires a node label to be passed in, for example "ubuntu-latest" - -set -e - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../ || exit 1 - -FILENAME=$1 -MATRIX_JOB_NAME=$2 -NODE_LABEL=$3 -NODE_COUNT=$4 - -# Get list of test names from JSON file -JSONFILE="${FILENAME}_test_list.json" -COUNTER=1 - -# Build a JSON object in the format expected by our integration-tests workflow matrix -matrix_output() { - local counter=$1 - local job_name=$2 - local test_name=$3 - local node_label=$4 - local node_count=$5 - local counter_out=$(printf "%02d\n" $counter) - echo -n "{\"name\": \"${job_name}-${counter_out}\", \"file\": \"${job_name}\",\"nodes\": ${node_count}, \"os\": \"${node_label}\", \"pyroscope_env\": \"ci-smoke-${job_name}-evm-simulated\", \"run\": \"-run '^${test_name}$'\"}" -} - -# Read the JSON file and loop through 'tests' and 'run' -jq -c '.tests[]' ${JSONFILE} | while read -r test; do - testName=$(echo ${test} | jq -r '.name') - label=$(echo ${test} | jq -r '.label // empty') - effective_node_label=${label:-$NODE_LABEL} - node_count=$(echo ${test} | jq -r '.nodes // empty') - effective_node_count=${node_count:-$NODE_COUNT} - subTests=$(echo ${test} | jq -r '.run[]?.name // empty') - output="" - - if [ $COUNTER -ne 1 ]; then - echo -n "," - fi - - # Loop through subtests, if any, and print in the desired format - if [ -n "$subTests" ]; then - subTestString="" - subTestCounter=1 - for subTest in $subTests; do - if [ $subTestCounter -ne 1 ]; then - subTestString+="|" - fi - subTestString+="${testName}\/${subTest}" - ((subTestCounter++)) - done - testName="${subTestString}" - fi - matrix_output $COUNTER $MATRIX_JOB_NAME "${testName}" ${effective_node_label} ${effective_node_count} - ((COUNTER++)) -done > "./tmpout.json" -OUTPUT=$(cat ./tmpout.json) -echo "[${OUTPUT}]" -rm ./tmpout.json diff --git a/integration-tests/scripts/buildTests b/integration-tests/scripts/buildTests deleted file mode 100755 index 705c76138cd..00000000000 --- a/integration-tests/scripts/buildTests +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -# build test binaries -# accepts a single space separated argument of the folders to build - -set -ex - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../ || { echo "Error: Failed to change directory to $SCRIPT_DIR/../"; exit 1; } - -helm repo update - -# parse out quotes if they exist in the string -temp="${1%\"}" -tosplit="${temp#\"}" - -# find the suite name -OIFS=$IFS -IFS=' ' -for x in $tosplit -do - if [ "$x" = "load" ]; then - echo "Changing directory and executing go test -c ./... for 'load' package" - pushd "./load" && go test -c -tags embed -o ../ ./... - popd - else - go test -c -tags embed ./"${x}" - fi - echo "Built ${x}.test" -done -IFS=$OIFS diff --git a/integration-tests/scripts/check_base64_env_var.sh b/integration-tests/scripts/check_base64_env_var.sh deleted file mode 100755 index f1bd4632da5..00000000000 --- a/integration-tests/scripts/check_base64_env_var.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -WHITE='\033[0;37m' -NC='\033[0m' # No Color - -echo -if [ ! -z "$BASE64_CONFIG_OVERRIDE" ]; then - echo "${GREEN}BASE64_CONFIG_OVERRIDE is set, it will be used.${NC}" - echo "Decoded content:" - echo - echo "$BASE64_CONFIG_OVERRIDE" | base64 --decode - echo - echo - echo "${GREEN}Press RETURN to confirm and continue...${NC} ${RED}or CTRL+C to exit${NC}" - read -r -n 1 key -else - echo "${YELLOW}BASE64_CONFIG_OVERRIDE is not set, checking for overrides.toml file...${NC}" - if [ -f "testconfig/overrides.toml" ]; then - echo "${GREEN}Found testconfig/overrides.toml file. Here's its content:${NC}" - echo - cat "testconfig/overrides.toml" - echo - echo - echo "${GREEN}Press RETURN to base64-encode it and run the test...${NC} ${RED}or CTRL+C to exit${NC}" - read -r -n 1 key - if [[ $key = "" ]]; then - export BASE64_CONFIG_OVERRIDE=$(cat testconfig/overrides.toml | base64) - fi - else - echo "${RED}testconfig/overrides.toml file does not exist. Please create it or set BASE64_CONFIG_OVERRIDE manually.${NC}" - echo - fi -fi \ No newline at end of file diff --git a/integration-tests/scripts/compareTestList.sh b/integration-tests/scripts/compareTestList.sh deleted file mode 100755 index 8cc916c7d63..00000000000 --- a/integration-tests/scripts/compareTestList.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -# accepts a path to a test file to compare the test list against - -set -e - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../ || exit 1 - -FILENAME=$1 - -TESTLIST=$(cat ${FILENAME} | grep "func Test.*\(t \*testing.T\)" | grep -o 'Test[A-Za-z0-9_]*') - -# convert the test list from above into json in the form {"tests":[{"name":"TestName"}]} -TESTLISTJSON=$(echo $TESTLIST | jq -R -s -c '{tests: split(" ") | map({"name":.})}') - -# Get list of test names from JSON file -JSONFILE="${FILENAME}_test_list.json" -JSONTESTLIST=$(jq -r '.tests[].name' ${JSONFILE}) - -# Convert lists to arrays -TESTLIST_ARRAY=($(echo "$TESTLIST")) -JSONTESTLIST_ARRAY=($(echo "$JSONTESTLIST")) - -ERRORS_FOUND=false - -# Compare TESTLIST_ARRAY against JSONTESTLIST_ARRAY -for test in "${TESTLIST_ARRAY[@]}"; do - if [[ ! " ${JSONTESTLIST_ARRAY[@]} " =~ " ${test} " ]]; then - echo "$test exists only in ${FILENAME}." - ERRORS_FOUND=true - fi -done - -# Compare JSONTESTLIST_ARRAY against TESTLIST_ARRAY -for test in "${JSONTESTLIST_ARRAY[@]}"; do - if [[ ! " ${TESTLIST_ARRAY[@]} " =~ " ${test} " ]]; then - echo "$test exists only in ${JSONFILE}." - ERRORS_FOUND=true - fi -done - -if [ "$ERRORS_FOUND" = true ] ; then - echo "Test lists do not match. Please update ${JSONFILE} with the updated tests to run in CI." - exit 1 -fi diff --git a/integration-tests/scripts/entrypoint b/integration-tests/scripts/entrypoint deleted file mode 100755 index ca460eb8177..00000000000 --- a/integration-tests/scripts/entrypoint +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash - -# Runs tests for a specific product - -set -x - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../ || exit 1 - -# Arguments needed -# ARGS=${ARGS:=} any extra args for go test -# SUITE=${SUITE:=} the suite of tests you want to run -# TEST_NAME=${TEST_NAME:=} The specific test to run - -if [ -z "${SUITE}" ]; then - echo "SUITE is not set. You likely need to set the TEST_SUITE env var in your workflow. Exiting." - exit 1 -fi - -# Helpful for debugging -pwd -ls -la - -# run the tests -./${SUITE}.test -test.v -test.count 1 ${ARGS} -test.run ^${TEST_NAME}$ - -exit_code=$? - -echo "Test exit code: ${exit_code}" - -# Check if the test did not pass (non-zero exit code) -if [ $exit_code -ne 0 ]; then - # 3 is the code for an interrupted test, we only want to restart the test when the test is interrupted and in a state - # that it can recover from. Otherwise we mark the test as "passed" as far as K8s is concerned so it doesn't restart it. - if [ $exit_code -eq 3 ]; then - echo "Test was interrupted, exiting with 1 exit code to trigger K8s to restart" - exit 1 # Exiting with non-zero status to trigger pod restart - else - echo "Test either panicked or had some sort of failure. We're exiting with a non-zero exit code so that K8s doesn't restart the pod." - echo "TEST_FAILED" - fi -fi - -# Sleep for the amount of time provided by the POST_RUN_SLEEP env var -upload_to_slack() { - curl -F file=@$1 -F "initial_comment=$2" -F channels=${SLACK_CHANNEL} -H "Authorization: Bearer ${SLACK_API_KEY}" https://slack.com/api/files.upload -} - -if [ -n "${UPLOAD_CPU_PROFILE}" ]; then - upload_to_slack profile.out "CPU Profile for ${TEST_NAME}" -fi -if [ -n "${UPLOAD_MEM_PROFILE}" ]; then - upload_to_slack memprofile.out "MEM Profile for ${TEST_NAME}" -fi - -echo "Exiting with 0 exit code as test is either completed, or failed and cannot be restarted" -exit 0 diff --git a/integration-tests/scripts/run_product_tests b/integration-tests/scripts/run_product_tests deleted file mode 100755 index 48899d45cfe..00000000000 --- a/integration-tests/scripts/run_product_tests +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Runs tests for a specific product - -set -ex - -# get this scripts directory -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -cd "$SCRIPT_DIR"/../ || exit 1 -PRODUCT=${PRODUCT:=cron} -ARGS=${ARGS:=} -go test -v ${ARGS} ./smoke/"$PRODUCT"_test.go diff --git a/integration-tests/test.Dockerfile b/integration-tests/test.Dockerfile deleted file mode 100644 index 611335ac8b8..00000000000 --- a/integration-tests/test.Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -ARG BASE_IMAGE -ARG IMAGE_VERSION=latest -FROM ${BASE_IMAGE}:${IMAGE_VERSION} AS build-env - -WORKDIR /go/testdir -# Deployment module uses a local replace for latest code -COPY deployment/go.mod deployment/go.sum /go/testdir/deployment/ -COPY go.mod go.sum ./ -COPY integration-tests/go.mod integration-tests/go.sum ./integration-tests/ -RUN cd integration-tests && go mod download - -COPY . . - -# Get the SHA of the current commit and save it to sha.txt -RUN git rev-parse HEAD > /go/testdir/sha.txt - -ARG SUITES=chaos soak benchmark - -RUN /go/testdir/integration-tests/scripts/buildTests "${SUITES}" - -FROM ${BASE_IMAGE}:${IMAGE_VERSION} - -RUN useradd -u 1001 -m -d /home/user1001 user1001 - -# Copy files as root first, then change ownership -COPY --from=build-env /go/testdir/integration-tests/*.test /go/testdir/integration-tests/ -COPY --from=build-env /go/testdir/integration-tests/scripts /go/testdir/integration-tests/scripts/ -COPY --from=build-env /go/testdir/sha.txt /go/testdir/sha.txt - -# Change ownership of copied files to user1001 -RUN chown -R user1001:user1001 /go/testdir - -RUN echo "chainlink SHA used:" -RUN cat /go/testdir/sha.txt - -RUN echo "All tests" -RUN ls -l /go/testdir/integration-tests/*.test - -# Switch to non-root user -USER 1001 - -ENTRYPOINT ["/go/testdir/integration-tests/scripts/entrypoint"] \ No newline at end of file diff --git a/integration-tests/testconfig/README.md b/integration-tests/testconfig/README.md index b60cd850a42..a579e508ea1 100644 --- a/integration-tests/testconfig/README.md +++ b/integration-tests/testconfig/README.md @@ -259,12 +259,7 @@ eth_funds = 3 ```bash # Go - BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) go test -v -p 1 ./smoke/_test.go - - - - - - - - - - - - - - - - # Make command - BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) make test_node_migrations_verbose + BASE64_CONFIG_OVERRIDE=$(cat ./testconfig/overrides.toml | base64) go test -v -p 1 ./smoke/ccip/... ``` ### Automation @@ -315,7 +310,7 @@ offchain_aggregators = ["0xc1ce3815d6e7f3705265c2577F1342344752A5Eb"] # If [OCR.Contracts.Settings.] is not present, we assume it should be used and configured -- - - - - - - - - - - - +- - - - - - - - - - - - # For OCRv2 [OCR2.Contracts] @@ -327,7 +322,7 @@ offchain_aggregators = ["0xc1ce3815d6e7f3705265c2577F1342344752A5Eb"] use = false # Default: true. Reuse existing OCR contracts? configure = false # Default: true. Configure existing OCR contracts? -- - - - - - - - - - - - +- - - - - - - - - - - - # Non-compliant configurations [OCR.Contracts] diff --git a/tools/ci/wait-for-containers-to-stop.sh b/tools/ci/wait-for-containers-to-stop.sh deleted file mode 100755 index 8aa5e6d7d8c..00000000000 --- a/tools/ci/wait-for-containers-to-stop.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# Description: Waits until the number of running Docker containers equals the target count, -# or until a specified timeout is reached. -# -# Usage: -# ./wait-for-docker-containers.sh [timeout_seconds] [target_container_count] -# -# timeout_seconds - Optional: Maximum seconds to wait (default: 30) -# target_container_count - Optional: Container count to wait for (default: 0) - -# Read parameters or use default values. -TIMEOUT=${1:-30} -TARGET_COUNT=${2:-0} - -# Calculate the end time using the built-in SECONDS variable. -end=$((SECONDS + TIMEOUT)) - -# Loop until the current docker container count equals the target count. -while [ "$(docker ps -q | wc -l)" -ne "$TARGET_COUNT" ]; do - # If the timeout has been reached, exit with an error. - if [ $SECONDS -ge $end ]; then - exit 1 - fi - sleep 1 -done \ No newline at end of file