zrhoffman commented on a change in pull request #5663:
URL: https://github.com/apache/trafficcontrol/pull/5663#discussion_r600796918
##########
File path: .github/workflows/tp.integration.tests.yml
##########
@@ -90,27 +92,33 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
- - name: Cache Alpine Docker image
- uses: actions/cache@v2
- with:
- path: ${{ github.workspace }}/docker-images
- key: docker-images/alpine@${{ env.ALPINE_VERSION }}.tar.gz
- - name: Import cached Alpine Docker image
- run: .github/actions/save-alpine-tar/entrypoint.sh load ${{
env.ALPINE_VERSION }}
- - name: Cache node modules
- uses: actions/cache@v2
- with:
- path: ~/.npm
- key: ${{ runner.os }}-node-modules-${{
hashFiles('traffic_portal/package-lock.json traffic_portal/bower.json') }}
- restore-keys: |
- ${{ runner.os }}-node-modules-
+# - name: Cache Alpine Docker image
+# uses: actions/cache@v2
+# with:
+# path: ${{ github.workspace }}/docker-images
+# key: docker-images/alpine@${{ env.ALPINE_VERSION }}.tar.gz
+# - name: Import cached Alpine Docker image
+# run: .github/actions/save-alpine-tar/entrypoint.sh load ${{
env.ALPINE_VERSION }}
Review comment:
The *todb-init* action uses an Alpine-based image, so these caching
steps should be kept.
##########
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
+
Review comment:
The whitespace on this empty line should be removed
##########
File path: traffic_portal/test/integration/PageObjects/ServersPage.po.ts
##########
@@ -138,23 +138,25 @@ export class ServersPage extends BasePage {
await this.txtStatus.sendKeys(server.Status);
await this.txtHostname.sendKeys(server.Hostname+this.randomize);
await this.txtDomainName.sendKeys(server.Domainname);
- await this.txtCDN.sendKeys(server.CDN);
- await this.txtCacheGroup.sendKeys(server.CacheGroup);
+ await this.txtCDN.sendKeys("ALL");
+ await this.txtCDN.sendKeys(server.CDN + this.randomize);
+ await this.txtCacheGroup.sendKeys(server.CacheGroup + this.randomize);
await this.txtType.sendKeys(server.Type);
- await this.txtProfile.sendKeys(server.Profile);
+ await this.txtProfile.sendKeys(server.Profile + this.randomize);
await this.txtPhysLocation.sendKeys(server.PhysLocation);
await this.txtInterfaceName.sendKeys(server.InterfaceName);
await
element(by.id(""+server.InterfaceName+"-")).sendKeys(ipv6.toString());
- await basePage.ClickCreate();
+ if (!await basePage.ClickCreate())
Review comment:
This trailing space should be removed.
##########
File path: .github/workflows/tp.integration.tests.yml
##########
@@ -90,27 +92,33 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
- - name: Cache Alpine Docker image
- uses: actions/cache@v2
- with:
- path: ${{ github.workspace }}/docker-images
- key: docker-images/alpine@${{ env.ALPINE_VERSION }}.tar.gz
- - name: Import cached Alpine Docker image
- run: .github/actions/save-alpine-tar/entrypoint.sh load ${{
env.ALPINE_VERSION }}
- - name: Cache node modules
- uses: actions/cache@v2
- with:
- path: ~/.npm
- key: ${{ runner.os }}-node-modules-${{
hashFiles('traffic_portal/package-lock.json traffic_portal/bower.json') }}
- restore-keys: |
- ${{ runner.os }}-node-modules-
+# - name: Cache Alpine Docker image
+# uses: actions/cache@v2
+# with:
+# path: ${{ github.workspace }}/docker-images
+# key: docker-images/alpine@${{ env.ALPINE_VERSION }}.tar.gz
+# - name: Import cached Alpine Docker image
+# run: .github/actions/save-alpine-tar/entrypoint.sh load ${{
env.ALPINE_VERSION }}
+# - name: Cache node modules
+# uses: actions/cache@v2
+# with:
+# path: ~/.npm
+# key: ${{ runner.os }}-node-modules-${{
hashFiles('traffic_portal/package-lock.json traffic_portal/bower.json') }}
+# restore-keys: |
+# ${{ runner.os }}-node-modules-
Review comment:
Was the *Cache node modules* step making things fail? If not, it should
be uncommented.
##########
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 .
Review comment:
There's trailing whitespace after `.`
##########
File path: traffic_portal/test/integration/config.ts
##########
@@ -27,59 +28,17 @@ let twoNumberRandomize = Math.floor(Math.random() * 101);
exports.twoNumberRandomize = twoNumberRandomize;
exports.randomize = randomize;
-export let config: Config = {
- // The address of a running selenium server.
- seleniumAddress: 'http://localhost:4444/wd/hub',
- allScriptsTimeout: 200000,
- // Capabilities to be passed to the webdriver instance.
- capabilities: {
- browserName: 'chrome',
- //Parallelization Configuration (shardTestFiles and maxInstances)
- shardTestFiles: false,
- maxInstances: 1,
- marionette: true,
- acceptInsecureCerts: true,
- acceptSslCerts: true,
- chromeOptions: {
- //Run protractor headlessly. Comment it out if user want to see the
process.
- args: ["--headless", "--no-sandbox", "--window-size=1920,1080"],
- prefs: {
- download: {
- 'prompt_for_download': false,
- 'default_directory': downloadsPath
- }
- }
- }
- },
- specs: [
- "specs/*.spec.js",
- ],
- // Options to be passed to Jasmine-node.
- jasmineNodeOpts: {
- showColors: true, // Use colors in the command line report.
- defaultTimeoutInterval: 1000000,
- random: false,
- stopSpecOnExpectationFailure: true,
- },
-
- params: {
- apiUrl: ' https://localhost:443/api/3.0',
- baseUrl: 'https://localhost:443/',
- login: {
- username: 'admin',
- password: 'twelve12'
- }
- },
-
- onPrepare: async function () {
- browser.waitForAngularEnabled(true);
+export let config: Config = conf;
+config.capabilities.chromeOptions.prefs.download.default_directory =
downloadsPath;
+config.onPrepare = async function () {
+ await browser.waitForAngularEnabled(true);
var fs = require('fs-extra');
fs.emptyDir('./Reports/', function (err) {
console.log(err);
});
-
+
Review comment:
There are spaces on this empty line
##########
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
Review comment:
There's trailing whitespace after `compass`
##########
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 .
+
Review comment:
The whitespace on this empty line should be removed
##########
File path: .github/workflows/tp.integration.tests.yml
##########
@@ -57,6 +57,8 @@ jobs:
ports:
- "4444:4444"
options: --health-cmd=/opt/bin/check-grid.sh --health-interval=5s
--health-timeout=15s --health-retries=5
+ env:
+ GRID_DEBUG: true
Review comment:
Does this enable a debugger? Is there any benefit to leaving it in?
##########
File path: traffic_portal/test/integration/config.ts
##########
@@ -103,6 +62,5 @@ export let config: Config = {
} catch (error) {
throw error
}
- },
-
-};
+}
+
Review comment:
There is an extra space at the end of
`traffic_portal/test/integration/config.ts`
##########
File path: traffic_portal/test/integration/README.md
##########
@@ -0,0 +1,30 @@
+# Traffic Portal Test Automation
Review comment:
Trailing space
##########
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
+
Review comment:
There's whitespace on this empty line, too
##########
File path: .github/actions/tp-integration-tests/entrypoint.sh
##########
@@ -76,7 +79,7 @@ download_go() {
return
fi
go_version="$(cat "${GITHUB_WORKSPACE}/GO_VERSION")"
- wget -O go.tar.gz
"https://dl.google.com/go/go${go_version}.linux-amd64.tar.gz" --no-verbose
+ wget -O go.tar.gz
"https://dl.google.com/go/go${go_version}.linux-amd64.tar.gz" --no-verbose
Review comment:
There's trailing whitespace after `--no-verbose`
##########
File path: .github/actions/tp-integration-tests/dist/tp-integration-tests.js
##########
@@ -0,0 +1,32 @@
+/*
Review comment:
Should this file have been moved from `tp-e2e-tests.js`?
`tp-e2e-tests.js` still exists
##########
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
Review comment:
There is trailing whitespace after `done`
##########
File path: traffic_portal/test/integration/CommonUtils/API.ts
##########
@@ -198,16 +200,19 @@ export class API {
for(var j = 0; j < data.Prerequisites[i].Data.length; j++){
let output = await
this.SendRequest(data.Prerequisites[i].Route, data.Prerequisites[i].Method,
data.Prerequisites[i].Data[j]);
if (output != null) {
- throw new Error(output)
+ console.error(`UseAPI failed on Action
${data.Prerequisites[i].Action} with index ${i}, and Data index ${j}`);
+ throw new Error(output);
}
}
}
return null
+ } else if (response.status == undefined) {
+ throw new Error(`Error requesting ${config.params.apiUrl}:
${response}`);
Review comment:
There is trailing whitespace after `;`
##########
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:
If this command times out, can we fail early instead of running the
tests?
--
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]