Fix up CI for GH app tests

For now we skip
This commit is contained in:
Tim Hockin 2024-09-16 09:56:10 -07:00
parent 8441240d9a
commit 4fe39fb860
No known key found for this signature in database
2 changed files with 33 additions and 19 deletions

View File

@ -45,12 +45,13 @@ jobs:
- name: make test - name: make test
working-directory: git-sync working-directory: git-sync
env: env:
SKIP_GITHUB_APP_TEST: false SKIP_GITHUB_APP_TEST: true
TEST_GITHUB_APP_APPLICATION_ID: ${{ secrets.TEST_GITHUB_APP_APPLICATION_ID }} #SKIP_GITHUB_APP_TEST: false
TEST_GITHUB_APP_AUTH_TEST_REPO: ${{ secrets.TEST_GITHUB_APP_AUTH_TEST_REPO }} #TEST_GITHUB_APP_APPLICATION_ID: ${{ secrets.TEST_GITHUB_APP_APPLICATION_ID }}
TEST_GITHUB_APP_CLIENT_ID: ${{ secrets.TEST_GITHUB_APP_CLIENT_ID }} #TEST_GITHUB_APP_AUTH_TEST_REPO: ${{ secrets.TEST_GITHUB_APP_AUTH_TEST_REPO }}
TEST_GITHUB_APP_INSTALLATION_ID: ${{ secrets.TEST_GITHUB_APP_INSTALLATION_ID }} #TEST_GITHUB_APP_CLIENT_ID: ${{ secrets.TEST_GITHUB_APP_CLIENT_ID }}
TEST_GITHUB_APP_PRIVATE_KEY: ${{ secrets.TEST_GITHUB_APP_PRIVATE_KEY }} #TEST_GITHUB_APP_INSTALLATION_ID: ${{ secrets.TEST_GITHUB_APP_INSTALLATION_ID }}
#TEST_GITHUB_APP_PRIVATE_KEY: ${{ secrets.TEST_GITHUB_APP_PRIVATE_KEY }}
run: | run: |
make test make test

View File

@ -41,6 +41,11 @@ function fail() {
return 42 return 42
} }
function skip() {
echo "SKIP" >&3
return 43
}
function pass() { function pass() {
echo "PASS" echo "PASS"
} }
@ -204,37 +209,43 @@ function final_cleanup() {
# Set the trap to call the final_cleanup function on exit. # Set the trap to call the final_cleanup function on exit.
trap final_cleanup EXIT trap final_cleanup EXIT
skip_github_app_test="${SKIP_GITHUB_APP_TEST:-false}" skip_github_app_test="${SKIP_GITHUB_APP_TEST:-true}"
required_env_vars=() required_env_vars=()
LOCAL_GITHUB_APP_PRIVATE_KEY_FILE="github_app_private_key.pem" LOCAL_GITHUB_APP_PRIVATE_KEY_FILE="github_app_private_key.pem"
GITHUB_APP_PRIVATE_KEY_MOUNT="" GITHUB_APP_PRIVATE_KEY_MOUNT=()
if [[ "${skip_github_app_test}" != "true" ]]; then if [[ "${skip_github_app_test}" != "true" ]]; then
required_env_vars=( required_env_vars=(
"TEST_GITHUB_APP_AUTH_TEST_REPO" "TEST_GITHUB_APP_AUTH_TEST_REPO"
"TEST_GITHUB_APP_APPLICATION_ID" "TEST_GITHUB_APP_APPLICATION_ID"
"TEST_GITHUB_APP_INSTALLATION_ID" "TEST_GITHUB_APP_INSTALLATION_ID"
"TEST_GITHUB_APP_CLIENT_ID" "TEST_GITHUB_APP_CLIENT_ID"
"TEST_GITHUB_APP_PRIVATE_KEY_FILE"
) )
# TEST_GITHUB_APP_PRIVATE_KEY, if set, overrides TEST_GITHUB_APP_PRIVATE_KEY_FILE if [[ -n "${TEST_GITHUB_APP_PRIVATE_KEY_FILE:-}" && -n "${TEST_GITHUB_APP_PRIVATE_KEY:-}" ]]; then
if [[ -v TEST_GITHUB_APP_PRIVATE_KEY && -n "${TEST_GITHUB_APP_PRIVATE_KEY}" ]]; then echo "ERROR: Both TEST_GITHUB_APP_PRIVATE_KEY_FILE and TEST_GITHUB_APP_PRIVATE_KEY were specified."
if [[ ! -v TEST_GITHUB_APP_PRIVATE_KEY_FILE || -z "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}" ]]; then exit 1
TEST_GITHUB_APP_PRIVATE_KEY_FILE="${DIR}/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}" fi
fi if [[ -n "${TEST_GITHUB_APP_PRIVATE_KEY_FILE:-}" ]]; then
echo "${TEST_GITHUB_APP_PRIVATE_KEY}" > "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}" cp "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}" "${DIR}/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}"
elif [[ -n "${TEST_GITHUB_APP_PRIVATE_KEY:-}" ]]; then
echo "${TEST_GITHUB_APP_PRIVATE_KEY}" > "${DIR}/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}"
else
echo "ERROR: Neither TEST_GITHUB_APP_PRIVATE_KEY_FILE nor TEST_GITHUB_APP_PRIVATE_KEY was specified."
echo " Either provide a value or skip this test (SKIP_GITHUB_APP_TEST=true)."
exit 1
fi fi
# Validate all required environment variables for the github-app-auth tests are provided. # Validate all required environment variables for the github-app-auth tests are provided.
for var in "${required_env_vars[@]}"; do for var in "${required_env_vars[@]}"; do
if [[ ! -v "${var}" ]]; then if [[ ! -v "${var}" ]]; then
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'." echo "ERROR: Required environment variable '${var}' is not set."
echo " Either provide a value or skip this test (SKIP_GITHUB_APP_TEST=true)."
exit 1 exit 1
fi fi
done done
# Mount the GitHub App private key file to the git-sync container # Mount the GitHub App private key file to the git-sync container
GITHUB_APP_PRIVATE_KEY_MOUNT=(-v "${TEST_GITHUB_APP_PRIVATE_KEY_FILE}":"/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}":ro) GITHUB_APP_PRIVATE_KEY_MOUNT=(-v "${DIR}/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}":"/${LOCAL_GITHUB_APP_PRIVATE_KEY_FILE}":ro)
fi fi
# WORK is temp space and in reset for each testcase. # WORK is temp space and in reset for each testcase.
@ -2232,7 +2243,7 @@ function e2e::auth_askpass_url_slow_start() {
############################################## ##############################################
function e2e::auth_github_app_application_id() { function e2e::auth_github_app_application_id() {
if [[ "${skip_github_app_test}" == "true" ]]; then if [[ "${skip_github_app_test}" == "true" ]]; then
return skip
fi fi
GIT_SYNC \ GIT_SYNC \
--one-time \ --one-time \
@ -2247,7 +2258,7 @@ function e2e::auth_github_app_application_id() {
function e2e::auth_github_app_client_id() { function e2e::auth_github_app_client_id() {
if [[ "${skip_github_app_test}" == "true" ]]; then if [[ "${skip_github_app_test}" == "true" ]]; then
return skip
fi fi
GIT_SYNC \ GIT_SYNC \
--one-time \ --one-time \
@ -3658,6 +3669,8 @@ for t; do
run_test RUN_RET "${TEST_FN}" >"${LOG}.${RUN}" 2>&1 run_test RUN_RET "${TEST_FN}" >"${LOG}.${RUN}" 2>&1
if [[ "$RUN_RET" == 0 ]]; then if [[ "$RUN_RET" == 0 ]]; then
pass pass
elif [[ "$RUN_RET" == 43 ]]; then
true # do nothing
else else
TEST_RET=1 TEST_RET=1
if [[ "$RUN_RET" != 42 ]]; then if [[ "$RUN_RET" != 42 ]]; then