readonly SERVER_PID_FILE=./tmp/server.pid readonly DASHBOARD_URL="http://localhost:8000" readonly GITEA_URL="http://localhost:3000" readonly DASHBOARD_OIDC_DISCOVERY_URL="$DASHBOARD_URL/o/.well-known/openid-configuration/" readonly DASHBOARD_ADMIN_USERNAME=root readonly DASHBOARD_ADMIN_PASSWORD=supercomplicatedpassword readonly DASHBOARD_ADMIN_EMAIL="$DASHBOARD_ADMIN_USERNAME@dash.example.org" readonly DASHBOARD_OIDC_APP_NAME=hostea-gitea readonly GITEA_ROOT_USERNAME=root readonly GITEA_ROOT_EMAIL="$GITEA_ROOT_USERNAME@example.org" readonly GITEA_ROOT_PASSOWRD=supercomplicatedpassword readonly GITEA_HOSTEA_SSO_NAME=hostea-sso readonly GITEA_OIDC_CALLBACK="$GITEA_URL/user/oauth2/$GITEA_HOSTEA_SSO_NAME/callback" readonly GITEA_HOSTEA_FLEET_DEPLOY_KEY="tests/fleet-deploy-key.pub" readonly GITEA_HOSTEA_USERNAME=hostea readonly GITEA_HOSTEA_PASSWORD=supercomplicatedpassword readonly GITEA_HOSTEA_EMAIL="$GITEA_HOSTEA_USERNAME@example.org" readonly GITEA_HOSTEA_SUPPORT_REPO="support" readonly GITEA_HOSTEA_FLEET_REPO="fleet" readonly HOSTEA_CUSTOMER_USERNAME=batman readonly HOSTEA_CUSTOMER_PASSWORD=supercomplicatedpassword readonly HOSTEA_CUSTOMER_EMAIL="$HOSTEA_CUSTOMER_USERNAME@example.org" if [ -z ${CI+x} ]; then MAILDEV_URL="http://localhost:1080" else MAILDEV_URL="http://smtp:1080" fi OIDC_CLIENT_ID="" OIDC_CLIENT_SECRET="" wait_for_env() { python -m integration \ check_env $GITEA_URL $DASHBOARD_URL $MAILDEV_URL } # create OIDC app on Hostea Dashboard oidc_dashboard_init() { python -m integration \ hostea register \ $DASHBOARD_ADMIN_USERNAME $DASHBOARD_ADMIN_PASSWORD \ $DASHBOARD_ADMIN_EMAIL \ $DASHBOARD_URL \ $MAILDEV_URL resp=$(python manage.py create_oidc \ $DASHBOARD_OIDC_APP_NAME $DASHBOARD_ADMIN_USERNAME \ $GITEA_OIDC_CALLBACK) OIDC_CLIENT_ID=$(echo $resp | cut -d ":" -f 2 | cut -d " " -f 2) OIDC_CLIENT_SECRET=$(echo $resp | cut -d ":" -f 3 | cut -d " " -f 2) } # register root user on Gitea to simulate Hoste admin and integrate SSO gitea_root(){ python -m integration \ gitea install \ $GITEA_ROOT_USERNAME $GITEA_ROOT_PASSOWRD \ $GITEA_ROOT_EMAIL \ $GITEA_URL python -m integration \ gitea register \ $GITEA_ROOT_USERNAME $GITEA_ROOT_PASSOWRD \ $GITEA_ROOT_EMAIL \ $GITEA_URL python -m integration \ gitea login \ $GITEA_ROOT_USERNAME $GITEA_ROOT_PASSOWRD \ $GITEA_ROOT_EMAIL \ $GITEA_URL # python -m integration \ # gitea install_sso \ # $GITEA_ROOT_USERNAME $GITEA_ROOT_PASSOWRD \ # $GITEA_ROOT_EMAIL \ # $GITEA_URL \ # $GITEA_HOSTEA_SSO_NAME \ # $OIDC_CLIENT_ID $OIDC_CLIENT_SECRET \ # $DASHBOARD_OIDC_DISCOVERY_URL } # register user "Hostea" on Gitea and create support repository support_repo_init() { python -m integration \ gitea register \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL python -m integration \ gitea login \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL python -m integration \ gitea create_repo \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL \ $GITEA_HOSTEA_SUPPORT_REPO } # register user "Hostea" on Gitea and create support repository fleet_repo_init() { python -m integration \ gitea register \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL || true python -m integration \ gitea login \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL python -m integration \ gitea create_repo \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL \ $GITEA_HOSTEA_FLEET_REPO python -m integration \ gitea add_deploy_key \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_PASSWORD \ $GITEA_HOSTEA_EMAIL \ $GITEA_URL \ $GITEA_HOSTEA_FLEET_REPO \ $GITEA_HOSTEA_FLEET_DEPLOY_KEY } # Create user on Hostea to simulate a Hostea customer hostea_customer_simulation() { python -m integration \ hostea register \ $HOSTEA_CUSTOMER_USERNAME $HOSTEA_CUSTOMER_PASSWORD \ $HOSTEA_CUSTOMER_EMAIL \ $DASHBOARD_URL \ $MAILDEV_URL python -m integration \ hostea login \ $HOSTEA_CUSTOMER_USERNAME $HOSTEA_CUSTOMER_PASSWORD \ $HOSTEA_CUSTOMER_EMAIL $DASHBOARD_URL python -m integration \ hostea support \ $HOSTEA_CUSTOMER_USERNAME $HOSTEA_CUSTOMER_PASSWORD \ $HOSTEA_CUSTOMER_EMAIL \ $DASHBOARD_URL \ $GITEA_URL \ $GITEA_HOSTEA_USERNAME $GITEA_HOSTEA_SUPPORT_REPO } setup_env() { mkdir tmp/ || true nohup python manage.py runserver > /dev/null 2>&1 & SERVER_PID=$! echo $SERVER_PID > $SERVER_PID_FILE } teardown_env() { kill $(cat $SERVER_PID_FILE) } docker_compose_up() { docker-compose -f docker-compose-dev-deps.yml up -d } docker_compose_down() { docker-compose -f docker-compose-dev-deps.yml down docker-compose -f docker-compose-dev-deps.yml down --remove-orphans }