-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathsetup-test-env.sh
More file actions
executable file
·124 lines (110 loc) · 4.97 KB
/
Copy pathsetup-test-env.sh
File metadata and controls
executable file
·124 lines (110 loc) · 4.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/bash
# Setup environment variables for test-target workflow
# This script is called from test-target.yml to reduce YAML size
set -euo pipefail
# Required environment variables (passed from workflow):
# INPUT_PYTHON_VERSION, INPUT_TEST_PY2, INPUT_TEST_PY3, INPUT_PLATFORM
# INPUT_AGENT_IMAGE, INPUT_AGENT_IMAGE_PY2, INPUT_AGENT_IMAGE_WINDOWS, INPUT_AGENT_IMAGE_WINDOWS_PY2
# INPUT_TARGET, INPUT_TARGET_ENV, INPUT_REPO, INPUT_CONTEXT, INPUT_MINIMUM_BASE_PACKAGE, INPUT_JOB_NAME
# INPUT_PYTEST_ARGS, INPUT_IS_FORK
# DD_API_KEY_SECRET, SETUP_ENV_VARS
# DOCKER_USERNAME, DOCKER_ACCESS_TOKEN, ORACLE_DOCKER_USERNAME, ORACLE_DOCKER_PASSWORD
# DD_GITHUB_USER, DD_GITHUB_TOKEN
# =============================================================================
# Define all variables as bash variables first for readability
# =============================================================================
DEFAULT_PYTHON_VERSION="3.13"
# Static variables
FORCE_COLOR="1"
TEST_RESULTS_BASE_DIR="test-results"
PYTHON_VERSION="${INPUT_PYTHON_VERSION:-$DEFAULT_PYTHON_VERSION}"
PYTHONUNBUFFERED="1"
# SKIP_ENV_NAME logic
if [[ "${INPUT_TEST_PY2:-}" == 'true' && "${INPUT_TEST_PY3:-}" != 'true' ]]; then
SKIP_ENV_NAME="py3.*"
elif [[ "${INPUT_TEST_PY2:-}" != 'true' && "${INPUT_TEST_PY3:-}" == 'true' ]]; then
SKIP_ENV_NAME="py2.*"
else
SKIP_ENV_NAME=""
fi
# Windows E2E requires Windows containers
if [[ "${INPUT_PLATFORM:-}" == 'windows' ]]; then
DDEV_E2E_AGENT="$INPUT_AGENT_IMAGE_WINDOWS"
DDEV_E2E_AGENT_PY2="$INPUT_AGENT_IMAGE_WINDOWS_PY2"
else
DDEV_E2E_AGENT="$INPUT_AGENT_IMAGE"
DDEV_E2E_AGENT_PY2="$INPUT_AGENT_IMAGE_PY2"
fi
# CI Visibility configuration
DD_ENV="ci"
DD_SERVICE="${INPUT_TARGET}-integrations-${INPUT_REPO}"
DD_TRACE_ANALYTICS_ENABLED="true"
DD_CIVISIBILITY_ENABLED="true"
DD_CIVISIBILITY_AGENTLESS_ENABLED="true"
DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER="github"
DD_PROFILING_ENABLED="true"
DD_SITE="datadoghq.com"
DD_API_KEY="$DD_API_KEY_SECRET"
# Prefix for artifact names when using minimum base package
if [[ "${INPUT_MINIMUM_BASE_PACKAGE:-}" == 'true' ]]; then
MINIMUM_BASE_PACKAGE_PREFIX="minimum-base-package-"
else
MINIMUM_BASE_PACKAGE_PREFIX=""
fi
# We want to replace leading dots as they will make directories hidden,
# which will cause them to be ignored by upload-artifact and EnricoMi/publish-unit-test-result-action
JOB_NAME=$(echo "$INPUT_JOB_NAME" | sed 's/^\./Dot/')
TEST_RESULTS_DIR="${TEST_RESULTS_BASE_DIR}/${JOB_NAME}"
# DD_TAGS
DD_TAGS="team:agent-integrations,platform:${INPUT_PLATFORM},target:${INPUT_TARGET},target_env:${INPUT_TARGET_ENV:-all},agent_image:${DDEV_E2E_AGENT},context:${INPUT_CONTEXT}"
# Compute INPUT_TARGET_STR from INPUT_TARGET and INPUT_TARGET_ENV
if [[ -n "${INPUT_TARGET_ENV:-}" ]]; then
INPUT_TARGET_STR="${INPUT_TARGET}:${INPUT_TARGET_ENV}"
else
INPUT_TARGET_STR="${INPUT_TARGET}"
fi
# =============================================================================
# Export all variables to GITHUB_ENV
# =============================================================================
{
echo "FORCE_COLOR=${FORCE_COLOR}"
echo "TEST_RESULTS_BASE_DIR=${TEST_RESULTS_BASE_DIR}"
echo "PYTHON_VERSION=${PYTHON_VERSION}"
echo "PYTHONUNBUFFERED=${PYTHONUNBUFFERED}"
echo "SKIP_ENV_NAME=${SKIP_ENV_NAME}"
echo "DDEV_E2E_AGENT=${DDEV_E2E_AGENT}"
echo "DDEV_E2E_AGENT_PY2=${DDEV_E2E_AGENT_PY2}"
echo "DD_ENV=${DD_ENV}"
echo "DD_SERVICE=${DD_SERVICE}"
echo "DD_TRACE_ANALYTICS_ENABLED=${DD_TRACE_ANALYTICS_ENABLED}"
echo "DD_CIVISIBILITY_ENABLED=${DD_CIVISIBILITY_ENABLED}"
echo "DD_CIVISIBILITY_AGENTLESS_ENABLED=${DD_CIVISIBILITY_AGENTLESS_ENABLED}"
echo "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER=${DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER}"
echo "DD_PROFILING_ENABLED=${DD_PROFILING_ENABLED}"
echo "DD_SITE=${DD_SITE}"
echo "DD_API_KEY=${DD_API_KEY}"
echo "MINIMUM_BASE_PACKAGE_PREFIX=${MINIMUM_BASE_PACKAGE_PREFIX}"
echo "TEST_RESULTS_DIR=${TEST_RESULTS_DIR}"
echo "DD_TAGS=${DD_TAGS}"
echo "DOCKER_USERNAME=${DOCKER_USERNAME}"
echo "DOCKER_ACCESS_TOKEN=${DOCKER_ACCESS_TOKEN}"
echo "ORACLE_DOCKER_USERNAME=${ORACLE_DOCKER_USERNAME}"
echo "ORACLE_DOCKER_PASSWORD=${ORACLE_DOCKER_PASSWORD}"
echo "DD_GITHUB_USER=${DD_GITHUB_USER}"
echo "DD_GITHUB_TOKEN=${DD_GITHUB_TOKEN}"
# Variables used by test scripts (run-unit-integration-tests.sh, run-e2e-tests.sh)
# Define once here to avoid overloading the action object map
echo "INPUT_REPO=${INPUT_REPO}"
echo "INPUT_TARGET=${INPUT_TARGET}"
echo "INPUT_TARGET_ENV=${INPUT_TARGET_ENV:-}"
echo "INPUT_TARGET_STR=${INPUT_TARGET_STR}"
echo "INPUT_PLATFORM=${INPUT_PLATFORM}"
echo "INPUT_MINIMUM_BASE_PACKAGE=${INPUT_MINIMUM_BASE_PACKAGE:-false}"
echo "INPUT_PYTEST_ARGS=${INPUT_PYTEST_ARGS:-}"
echo "INPUT_IS_FORK=${INPUT_IS_FORK:-false}"
echo "INPUT_CONTEXT=${INPUT_CONTEXT:-standard}"
} >> "$GITHUB_ENV"
# Override with custom vars if provided
if [[ -n "${SETUP_ENV_VARS:-}" ]]; then
echo "$SETUP_ENV_VARS" | jq -r 'to_entries[] | "\(.key)=\(.value)"' >> "$GITHUB_ENV"
fi