|
194 | 194 | RUNID="${RANDOM}${RANDOM}"
|
195 | 195 | DIR="/tmp/git-sync-e2e.$RUNID"
|
196 | 196 | mkdir "$DIR"
|
| 197 | +function final_cleanup() { |
| 198 | + if [[ "${CLEANUP:-}" == 0 ]]; then |
| 199 | + echo "leaving logs in $DIR" |
| 200 | + else |
| 201 | + rm -rf "$DIR" |
| 202 | + fi |
| 203 | +} |
| 204 | +# Set the trap to call the final_cleanup function on exit. |
| 205 | +trap final_cleanup EXIT |
| 206 | + |
| 207 | +skip_github_app_test="${SKIP_GITHUB_APP_TEST:-false}" |
| 208 | +required_env_vars=() |
| 209 | +LOCAL_GITHUB_APP_PRIVATE_KEY_FILE="github_app_private_key.pem" |
| 210 | +GITHUB_APP_PRIVATE_KEY_MOUNT="" |
| 211 | +if [[ "${skip_github_app_test}" != "true" ]]; then |
| 212 | + required_env_vars=( |
| 213 | + "TEST_GITHUB_APP_AUTH_TEST_REPO" |
| 214 | + "TEST_GITHUB_APP_APPLICATION_ID" |
| 215 | + "TEST_GITHUB_APP_INSTALLATION_ID" |
| 216 | + "TEST_GITHUB_APP_CLIENT_ID" |
| 217 | + "TEST_GITHUB_APP_PRIVATE_KEY_FILE" |
| 218 | + ) |
| 219 | + |
| 220 | + # TEST_GITHUB_APP_PRIVATE_KEY, if set, overrides TEST_GITHUB_APP_PRIVATE_KEY_FILE |
| 221 | + if [[ -v TEST_GITHUB_APP_PRIVATE_KEY && -n "${TEST_GITHUB_APP_PRIVATE_KEY}" ]]; then |
| 222 | + if [[ ! -v TEST_GITHUB_APP_PRIVATE_KEY_FILE || -z "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}" ]]; then |
| 223 | + TEST_GITHUB_APP_PRIVATE_KEY_FILE="${DIR}/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}" |
| 224 | + fi |
| 225 | + echo "${TEST_GITHUB_APP_PRIVATE_KEY}" > "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}" |
| 226 | + fi |
| 227 | + |
| 228 | + # Validate all required environment variables for the github-app-auth tests are provided. |
| 229 | + for var in "${required_env_vars[@]}"; do |
| 230 | + if [[ ! -v "${var}" ]]; then |
| 231 | + echo "Error: Required environment variable '${var}' is not set or empty. Either provide a value or skip the GitHub App test by setting SKIP_GITHUB_APP_TEST to 'true'." |
| 232 | + exit 1 |
| 233 | + fi |
| 234 | + done |
| 235 | + |
| 236 | + # Mount the GitHub App private key file to the git-sync container |
| 237 | + GITHUB_APP_PRIVATE_KEY_MOUNT=(-v "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}":"/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}":ro) |
| 238 | +fi |
197 | 239 |
|
198 | 240 | # WORK is temp space and in reset for each testcase.
|
199 | 241 | WORK="$DIR/work"
|
@@ -295,7 +337,7 @@ function GIT_SYNC() {
|
295 | 337 | -v "$DOT_SSH/1/id_test":"/ssh/secret.1":ro \
|
296 | 338 | -v "$DOT_SSH/2/id_test":"/ssh/secret.2":ro \
|
297 | 339 | -v "$DOT_SSH/3/id_test":"/ssh/secret.3":ro \
|
298 |
| - -v "$(pwd)/$GITHUB_APP_PRIVATE_KEY_FILE":"/github_app_private_key.pem":ro \ |
| 340 | + "${GITHUB_APP_PRIVATE_KEY_MOUNT[@]}" \ |
299 | 341 | "${GIT_SYNC_E2E_IMAGE}" \
|
300 | 342 | -v=6 \
|
301 | 343 | --add-user \
|
@@ -2189,27 +2231,33 @@ function e2e::auth_askpass_url_slow_start() {
|
2189 | 2231 | # Test github app auth
|
2190 | 2232 | ##############################################
|
2191 | 2233 | function e2e::auth_github_app_application_id() {
|
| 2234 | + if [[ "${skip_github_app_test}" == "true" ]]; then |
| 2235 | + return |
| 2236 | + fi |
2192 | 2237 | GIT_SYNC \
|
2193 | 2238 | --one-time \
|
2194 |
| - --repo="$GITHUB_APP_AUTH_TEST_REPO" \ |
2195 |
| - --github-app-application-id "$GITHUB_APP_APPLICATION_ID" \ |
2196 |
| - --github-app-installation-id "$GITHUB_APP_INSTALLATION_ID" \ |
2197 |
| - --github-app-private-key-file "/github_app_private_key.pem" \ |
2198 |
| - --root="$ROOT" \ |
| 2239 | + --repo="${TEST_GITHUB_APP_AUTH_TEST_REPO}" \ |
| 2240 | + --github-app-application-id "${TEST_GITHUB_APP_APPLICATION_ID}" \ |
| 2241 | + --github-app-installation-id "${TEST_GITHUB_APP_INSTALLATION_ID}" \ |
| 2242 | + --github-app-private-key-file "/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}" \ |
| 2243 | + --root="${ROOT}" \ |
2199 | 2244 | --link="link"
|
2200 |
| - assert_file_exists "$ROOT/link/LICENSE" |
| 2245 | + assert_file_exists "${ROOT}/link/LICENSE" |
2201 | 2246 | }
|
2202 | 2247 |
|
2203 | 2248 | function e2e::auth_github_app_client_id() {
|
| 2249 | + if [[ "${skip_github_app_test}" == "true" ]]; then |
| 2250 | + return |
| 2251 | + fi |
2204 | 2252 | GIT_SYNC \
|
2205 | 2253 | --one-time \
|
2206 |
| - --repo="$GITHUB_APP_AUTH_TEST_REPO" \ |
2207 |
| - --github-app-client-id "$GITHUB_APP_CLIENT_ID" \ |
2208 |
| - --github-app-installation-id "$GITHUB_APP_INSTALLATION_ID" \ |
2209 |
| - --github-app-private-key-file "/github_app_private_key.pem" \ |
2210 |
| - --root="$ROOT" \ |
| 2254 | + --repo="${TEST_GITHUB_APP_AUTH_TEST_REPO}" \ |
| 2255 | + --github-app-client-id "${TEST_GITHUB_APP_CLIENT_ID}" \ |
| 2256 | + --github-app-installation-id "${TEST_GITHUB_APP_INSTALLATION_ID}" \ |
| 2257 | + --github-app-private-key-file "/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}" \ |
| 2258 | + --root="${ROOT}" \ |
2211 | 2259 | --link="link"
|
2212 |
| - assert_file_exists "$ROOT/link/LICENSE" |
| 2260 | + assert_file_exists "${ROOT}/link/LICENSE" |
2213 | 2261 | }
|
2214 | 2262 |
|
2215 | 2263 | ##############################################
|
@@ -3640,11 +3688,4 @@ if [[ "$FINAL_RET" != 0 ]]; then
|
3640 | 3688 | exit 1
|
3641 | 3689 | fi
|
3642 | 3690 |
|
3643 |
| -# Finally... |
3644 |
| -echo |
3645 |
| -if [[ "${CLEANUP:-}" == 0 ]]; then |
3646 |
| - echo "leaving logs in $DIR" |
3647 |
| -else |
3648 |
| - rm -rf "$DIR" |
3649 |
| -fi |
3650 | 3691 |
|
0 commit comments