summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-03-25 12:23:28 +0100
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-03-25 12:23:28 +0100
commit955b320565faa072f284cf4156020ce5811979ad (patch)
tree38801080fb2457d189647bcae3f62bee0964e0ca
parent192280cb3940eac9ea4a4ad7982c1e58f0138a42 (diff)
Set portal username and pass with env vars
-rw-r--r--.github/workflows/test.yml2
-rw-r--r--ci/docker/docker-compose.yml6
-rw-r--r--ci/docker/starteduvpn.sh15
-rwxr-xr-xci/startcompose.sh15
-rw-r--r--selenium_eduvpn.py15
5 files changed, 46 insertions, 7 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index b2e6e52..5594dc1 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -10,7 +10,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Test with docker-compose
- run: docker-compose --file ci/docker/docker-compose.yml --project-directory . up --abort-on-container-exit
+ run: PORTAL_USER="ci" PORTAL_PASS="ci" ./ci/startcompose.sh
build-lib:
name: Build shared Go library
diff --git a/ci/docker/docker-compose.yml b/ci/docker/docker-compose.yml
index 12ad767..6c42e1f 100644
--- a/ci/docker/docker-compose.yml
+++ b/ci/docker/docker-compose.yml
@@ -1,5 +1,9 @@
version: '3'
+x-common-env: &common-env
+ PORTAL_USER: ${PORTAL_USER}
+ PORTAL_PASS: ${PORTAL_PASS}
+
networks:
eduvpn_network:
ipam:
@@ -20,6 +24,7 @@ services:
ipv4_address: 172.20.0.5
cap_add: # needed for wireguard
- NET_ADMIN
+ environment: *common-env
healthcheck:
test: ["CMD", "systemctl", "status", "wg-quick@wg0"] # Wait for wireguard to come online
interval: 5s
@@ -29,6 +34,7 @@ services:
build:
context: "."
dockerfile: 'ci/docker/go-test.docker'
+ environment: *common-env
depends_on:
eduvpnserver:
condition: service_healthy
diff --git a/ci/docker/starteduvpn.sh b/ci/docker/starteduvpn.sh
index 191ef79..cddf88c 100644
--- a/ci/docker/starteduvpn.sh
+++ b/ci/docker/starteduvpn.sh
@@ -1,5 +1,15 @@
#!/usr/bin/env bash
+if [[ -z "${PORTAL_USER}" ]]; then
+ printf "Error: No portal username set, set the PORTAL_USER env var\n"
+ exit 1
+fi
+
+if [[ -z "${PORTAL_PASS}" ]]; then
+ printf "Error: No portal username set, set the PORTAL_PASS env var\n"
+ exit 1
+fi
+
systemctl start php-fpm
systemctl start httpd
systemctl start crond
@@ -9,9 +19,6 @@ sleep 5
vpn-maint-apply-changes
-USER_NAME="docker"
-USER_PASS="docker"
-
-sudo -u apache vpn-user-portal-account --add "${USER_NAME}" --password "${USER_PASS}"
+sudo -u apache vpn-user-portal-account --add "${PORTAL_USER}" --password "${PORTAL_PASS}"
sleep infinity
diff --git a/ci/startcompose.sh b/ci/startcompose.sh
new file mode 100755
index 0000000..90f360c
--- /dev/null
+++ b/ci/startcompose.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+if [[ -z "${PORTAL_USER}" ]]; then
+ printf "Error: No portal username set, set the PORTAL_USER env var\n"
+ exit 1
+fi
+
+if [[ -z "${PORTAL_PASS}" ]]; then
+ printf "Error: No portal username set, set the PORTAL_PASS env var\n"
+ exit 1
+fi
+
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+
+docker-compose --file ci/docker/docker-compose.yml --project-directory $SCRIPT_DIR/.. up --abort-on-container-exit
diff --git a/selenium_eduvpn.py b/selenium_eduvpn.py
index 08b48ef..2a6d042 100644
--- a/selenium_eduvpn.py
+++ b/selenium_eduvpn.py
@@ -6,13 +6,24 @@ from pyvirtualdisplay import Display
def login_oauth(driver, authURL):
driver.get(authURL)
assert "VPN Portal - Sign In" in driver.title
+
+ portal_user = os.getenv("PORTAL_USER")
+ if portal_user is None:
+ print("Error: No portal username set, set the PORTAL_USER env var")
+ sys.exit(1)
+
+ portal_pass = os.getenv("PORTAL_PASS")
+ if portal_pass is None:
+ print("Error: No portal password set, set the PORTAL_PASS env var")
+ sys.exit(1)
+
elem = driver.find_element_by_name("userName")
elem.clear()
- elem.send_keys("docker")
+ elem.send_keys(portal_user)
elem = driver.find_element_by_name("userPass")
elem.clear()
- elem.send_keys("docker")
+ elem.send_keys(portal_pass)
driver.find_element_by_css_selector('.frm > fieldset:nth-child(2) > button:nth-child(2)').click()
assert "VPN Portal - Approve Application" in driver.title
driver.find_element_by_css_selector('.frm > fieldset:nth-child(1) > button:nth-child(1)').click()