shamrickus commented on a change in pull request #5663:
URL: https://github.com/apache/trafficcontrol/pull/5663#discussion_r601536910
##########
File path: .github/actions/tp-integration-tests/entrypoint.sh
##########
@@ -141,82 +144,99 @@ start_traffic_vault &
sudo apt-get install -y --no-install-recommends gettext \
ruby ruby-dev libc-dev curl \
- chromium-chromedriver postgresql-client \
gcc musl-dev
-sudo gem update --system && sudo gem install sass compass
-sudo npm i -g protractor@^7.0.0 forever bower grunt selenium-webdriver
+sudo gem update --system && sudo gem install sass compass
+sudo npm i -g forever bower grunt
-CONTAINER=$(docker ps | grep "selenium/node-chrome" | awk '{print $1}')
-CHROME_VER=$(docker exec "$CONTAINER" google-chrome --version | sed -E 's/.*
([0-9.]+).*/\1/')
-sudo webdriver-manager update --gecko false --versions.chrome
"LATEST_RELEASE_$CHROME_VER"
+CHROME_CONTAINER=$(docker ps | grep "selenium/node-chrome" | awk '{print $1}')
+HUB_CONTAINER=$(docker ps | grep "selenium/hub" | awk '{print $1}')
+CHROME_VER=$(docker exec "$CHROME_CONTAINER" google-chrome --version | sed -E
's/.* ([0-9.]+).*/\1/')
GOROOT=/usr/local/go
export PATH="${PATH}:${GOROOT}/bin"
download_go
export GOPATH="${HOME}/go"
readonly ORG_DIR="$GOPATH/src/github.com/apache"
readonly REPO_DIR="${ORG_DIR}/trafficcontrol"
+resources="$(dirname "$0")"
if [[ ! -e "$REPO_DIR" ]]; then
mkdir -p "$ORG_DIR"
cd
mv "${GITHUB_WORKSPACE}" "${REPO_DIR}/"
ln -s "$REPO_DIR" "${GITHUB_WORKSPACE}"
fi
-cd "${REPO_DIR}/traffic_ops/traffic_ops_golang"
+to_build() {
+ cd "${REPO_DIR}/traffic_ops/traffic_ops_golang"
+ go mod vendor -v
+ go build .
+
+ openssl req -new -x509 -nodes -newkey rsa:4096 -out localhost.crt -keyout
localhost.key -subj "/CN=tptests";
+
+ envsubst <"${resources}/cdn.json" >cdn.conf
+ cp "${resources}/database.json" database.conf
+
+ export $(<"${ciab_dir}/variables.env" sed '/^#/d') # defines
TV_ADMIN_USER/PASSWORD
+ envsubst <"${resources}/riak.json" >riak.conf
+ truncate --size=0 warning.log error.log event.log info.log
+
+ ./traffic_ops_golang --cfg ./cdn.conf --dbcfg ./database.conf -riakcfg
riak.conf &
+ tail -f warning.log 2>&1 | color_and_prefix "${yellow_bg}" 'Traffic Ops
WARN' &
+ tail -f error.log 2>&1 | color_and_prefix "${red_bg}" 'Traffic Ops ERR' &
+ tail -f event.log 2>&1 | color_and_prefix "${gray_bg}" 'Traffic Ops EVT' &
+}
-go mod vendor -v > /dev/null
-go build . > /dev/null
-
+tp_build() {
+ cd "${REPO_DIR}/traffic_portal"
+ npm ci
+ bower install
+ grunt dist
-openssl req -new -x509 -nodes -newkey rsa:4096 -out localhost.crt -keyout
localhost.key -subj "/CN=tptests";
+ cp "${resources}/config.js" ./conf/
+ touch tp.log access.log out.log err.log
+ sudo forever --minUptime 5000 --spinSleepTime 2000 -f -o out.log start
server.js &
+ tail -f err.log 2>&1 | color_and_prefix "${red_bg}" "Node Err" &
+}
-resources="$(dirname "$0")"
-envsubst <"${resources}/cdn.json" >cdn.conf
-cp "${resources}/database.json" database.conf
+(to_build) &
+(tp_build) &
-export $(<"${ciab_dir}/variables.env" sed '/^#/d') # defines
TV_ADMIN_USER/PASSWORD
-envsubst <"${resources}/riak.json" >riak.conf
+onFail() {
+ docker logs "$trafficvault" > Reports/traffic_vault.log
+ mv tp.log Reports/forever.log
+ mv access.log Reports/tp-access.log
+ mv out.log Reports/node.log
+ docker logs $CHROME_CONTAINER > Reports/chrome.log
+ docker logs $HUB_CONTAINER > Reports/hub.log
+ echo "Detailed logs produced info Reports artifact"
+ exit 1
+}
-truncate --size=0 warning.log error.log event.log # Removes output from
previous API versions and makes sure files exist
-./traffic_ops_golang --cfg ./cdn.conf --dbcfg ./database.conf -riakcfg
riak.conf &
-tail -f warning.log 2>&1 | color_and_prefix "${yellow_bg}" 'Traffic Ops' &
-tail -f error.log 2>&1 | color_and_prefix "${red_bg}" 'Traffic Ops' &
-tail -f event.log 2>&1 | color_and_prefix "${gray_bg}" 'Traffic Ops' &
-cd "../../traffic_portal"
+cd "${REPO_DIR}/traffic_portal/test/integration"
npm ci
-bower install
-grunt dist
-
-cp "${resources}/config.js" ./conf/
-touch tp.log access.log
-sudo forever --minUptime 5000 --spinSleepTime 2000 -l ./tp.log start server.js
&
-
-fqdn="https://localhost:8443"
-while ! curl -Lvsk "${fqdn}/api/3.0/ping" >/dev/null 2>&1; do
- echo "waiting for TP/TO server to start on '${fqdn}'"
- sleep 10
-done
+PATH=$(pwd)/node_modules/.bin/:$PATH
+webdriver-manager update --gecko false --versions.chrome
"LATEST_RELEASE_$CHROME_VER"
-cd "test/end_to_end"
jq " .capabilities.chromeOptions.args = [
- \"--disable-extensions\",
- \"--disable-gpu\",
\"--headless\",
\"--no-sandbox\",
+ \"--disable-gpu\",
\"--ignore-certificate-errors\"
- ] | .baseUrl = \"${fqdn}\" | del(.seleniumAddress)" \
- conf.json > conf.json.tmp && mv conf.json.tmp conf.json
-
-onFail() {
- docker logs "$trafficvault" 2>&1 |
- color_and_prefix "$gray_bg" 'Traffic Vault';
- cat tp.log | color_and_prefix "${gray_bg}" 'Forever'
- cat access.log | color_and_prefix "${gray_bg}" 'Traffic Portal'
- exit 1
-}
-
-sudo protractor ./conf.js || onFail
+ ] | .params.apiUrl = \"${tp_fqdn}/api/4.0\" | .params.baseUrl =\"${tp_fqdn}\"
+ | .capabilities[\"goog:chromeOptions\"].w3c = false |
.capabilities.chromeOptions.w3c = false" \
+ config.json > config.json.tmp && mv config.json.tmp config.json
+
+tsc
+
+# Wait for tp/to build
+timeout 5m bash <<TMOUT
+ while ! curl -Lvsk "${tp_fqdn}/api/4.0/ping" >/dev/null 2>&1; do
+ echo "waiting for TP/TO server to start on '${tp_fqdn}'"
+ sleep 10
+ done
+TMOUT
Review comment:
Timeout returns non-zero when the command times out. As can be seen in
this run:
https://github.com/shamrickus/trafficcontrol/runs/2168798570?check_suite_focus=true#step:5:1096
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]