shamrickus commented on code in PR #6773:
URL: https://github.com/apache/trafficcontrol/pull/6773#discussion_r863155815


##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal

Review Comment:
   This should probably be renamed to just `Experimental Traffic Portal` or 
something of that sort.



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install

Review Comment:
   `npm ci` was correct



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install
 
       - name: Build
         run: |
           cd experimental/traffic-portal/
           npm run build:ssr
+  lint:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Lint
         run: |
           cd experimental/traffic-portal/
           npm run lint
+  unit-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: Install latest Chrome
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Test
         run: |
           cd experimental/traffic-portal/
           npm run test:ci
+  end-to-end-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+    env:
+      PGUSER: traffic_ops
+      PGPASSWORD: twelve
+      PGHOST: localhost
+      PGDATABASE: traffic_ops
+      PGPORT: 5432
+    services:
+      postgres:
+        image: postgres:13
+        env:
+          POSTGRES_USER: traffic_ops
+          POSTGRES_PASSWORD: twelve
+          POSTGRES_DB: traffic_ops
+        ports:
+          - 5432:5432
+        options: --health-cmd pg_isready --health-interval 10s 
--health-timeout 5s --health-retries 5
+      smtp:
+        image: maildev/maildev:2.0.0-beta3
+        ports:
+          - 25:25
+        options: >-
+          --entrypoint=bin/maildev
+          --user=root
+          --health-cmd="sh -c \"[[ \$(wget -qO- http://smtp/healthz) == true 
]]\""
+          --
+          maildev/maildev:2.0.0-beta3
+          --smtp=25
+          --hide-extensions=STARTTLS
+          --web=80
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Cache Alpine Docker image
+        uses: actions/cache@v3
+        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@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-modules-
+      - name: Initialize Traffic Ops Database
+        id: todb
+        uses: ./.github/actions/todb-init
+      - name: Initialize Traffic Vault Database
+        id: tvdb
+        uses: ./.github/actions/tvdb-init
+      - name: Check Go Version
+        run: echo "::set-output name=value::$(cat GO_VERSION)"
+        id: go-version
+      - name: Install Go
+        uses: actions/setup-go@v3
+        with:
+          go-version: ${{ steps.go-version.outputs.value }}
+      - name: Build Traffic Ops
+        run: |
+          cd "${GITHUB_WORKSPACE}/traffic_ops/traffic_ops_golang"
+          go build .
+
+      # Setup
+      - name: Install dependencies
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable 
postgresql-client gettext-base
+      - name: Create admin user
+        run: |
+          psql -c "INSERT INTO tm_user (username, role, tenant_id, 
local_passwd) VALUES ('admin', 1, 1, 
'SCRYPT:16384:8:1:p0Bppp/6IBeYxSwdLuYddsdMLBU/BNSlLY6fSIF7H1XW4eTbNVeMPVm7TuTEG4FM8PbqLlVwi8sPy8ZJznAlaQ==:sRcHWGe43mm/uEmXTIw37GcLEQZTlWAdf4vJqK8f0MDh8P+8gXoNx+nxWyb3r/0Bh+yyg0g/dUvti/ePZJL+Jw==');"
+      - name: Create SSL Certificates and AES key
+        run: |
+          openssl rand 32 | base64 | tee "${GITHUB_WORKSPACE}/aes.key"
+          openssl req -new -x509 -nodes -newkey rsa:4096 -out 
traffic_ops/traffic_ops_golang/localhost.crt -keyout 
traffic_ops/traffic_ops_golang/localhost.key -subj "/CN=tptests"
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal
+          npm install
+      - name: Run everything and test
+        uses: ./.github/actions/tpv2-integration-tests
+      - name: Upload Report
+        uses: actions/upload-artifact@v3
+        if: always()
+        with:
+          name: ${{ github.job }}
+          path: |
+            traffic_ops/traffic_ops_golang/out.log
+            experimental/traffic-portal/nightwatch/screens
+            experimental/traffic-portal/logs
+            experimental/traffic-portal/tests_output

Review Comment:
   `nightwatch/junit` is not uploaded. I don't think it actually provides any 
additional info but it's being generated so we might as well include it in the 
artifacts.



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install
 
       - name: Build
         run: |
           cd experimental/traffic-portal/
           npm run build:ssr
+  lint:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Lint
         run: |
           cd experimental/traffic-portal/
           npm run lint
+  unit-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: Install latest Chrome
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Test
         run: |
           cd experimental/traffic-portal/
           npm run test:ci
+  end-to-end-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+    env:
+      PGUSER: traffic_ops
+      PGPASSWORD: twelve
+      PGHOST: localhost
+      PGDATABASE: traffic_ops
+      PGPORT: 5432
+    services:
+      postgres:
+        image: postgres:13
+        env:
+          POSTGRES_USER: traffic_ops
+          POSTGRES_PASSWORD: twelve
+          POSTGRES_DB: traffic_ops
+        ports:
+          - 5432:5432
+        options: --health-cmd pg_isready --health-interval 10s 
--health-timeout 5s --health-retries 5
+      smtp:
+        image: maildev/maildev:2.0.0-beta3
+        ports:
+          - 25:25
+        options: >-
+          --entrypoint=bin/maildev
+          --user=root
+          --health-cmd="sh -c \"[[ \$(wget -qO- http://smtp/healthz) == true 
]]\""
+          --
+          maildev/maildev:2.0.0-beta3
+          --smtp=25
+          --hide-extensions=STARTTLS
+          --web=80
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Cache Alpine Docker image
+        uses: actions/cache@v3
+        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@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-modules-
+      - name: Initialize Traffic Ops Database
+        id: todb
+        uses: ./.github/actions/todb-init
+      - name: Initialize Traffic Vault Database
+        id: tvdb
+        uses: ./.github/actions/tvdb-init
+      - name: Check Go Version
+        run: echo "::set-output name=value::$(cat GO_VERSION)"
+        id: go-version
+      - name: Install Go
+        uses: actions/setup-go@v3
+        with:
+          go-version: ${{ steps.go-version.outputs.value }}
+      - name: Build Traffic Ops
+        run: |
+          cd "${GITHUB_WORKSPACE}/traffic_ops/traffic_ops_golang"
+          go build .
+
+      # Setup
+      - name: Install dependencies
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable 
postgresql-client gettext-base

Review Comment:
   `google-chrome-stable` is not needed for the e2e tests



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install
 
       - name: Build
         run: |
           cd experimental/traffic-portal/
           npm run build:ssr
+  lint:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Lint
         run: |
           cd experimental/traffic-portal/
           npm run lint
+  unit-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: Install latest Chrome
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install

Review Comment:
   `npm ci`



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install
 
       - name: Build
         run: |
           cd experimental/traffic-portal/
           npm run build:ssr
+  lint:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install

Review Comment:
   `npm ci`



##########
.github/workflows/tpv2.yml:
##########
@@ -16,53 +16,206 @@
 # under the License.
 name: Lint and Test Experimental Traffic Portal
 
+env:
+  # alpine:3.13
+  ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
+
 on:
   pull_request:
     paths:
       - experimental/traffic-portal/**
       - .github/workflows/tpv2.yml
-    types: [opened, reopened, edited, synchronize]
+      - .github/actions/tpv2-integration-tests
+    types: [opened, reopened, ready_for_review, synchronize]
 
 jobs:
   build:
+    if: github.event.pull_request.draft == false
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v1
+        uses: actions/checkout@v3
 
       - name: Cache node modules
-        uses: actions/cache@v1
+        uses: actions/cache@v3
         with:
           path: ./experimental/traffic-portal/node_modules
           key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
           restore-keys: |
             ${{ runner.os }}-node-
 
       - name: Node 16
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: 16.x
 
-      - name: Install latest Chrome
-        run: sudo apt-get update && sudo apt-get install google-chrome-stable
-
       - name: NPM install
         run: |
           cd experimental/traffic-portal/
-          npm ci
+          npm install
 
       - name: Build
         run: |
           cd experimental/traffic-portal/
           npm run build:ssr
+  lint:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Lint
         run: |
           cd experimental/traffic-portal/
           npm run lint
+  unit-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+
+      - name: Cache node modules
+        uses: actions/cache@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-
+
+      - name: Node 16
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16.x
+
+      - name: Install latest Chrome
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable
+
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal/
+          npm install
 
       - name: Test
         run: |
           cd experimental/traffic-portal/
           npm run test:ci
+  end-to-end-tests:
+    if: github.event.pull_request.draft == false
+    runs-on: ubuntu-latest
+    env:
+      PGUSER: traffic_ops
+      PGPASSWORD: twelve
+      PGHOST: localhost
+      PGDATABASE: traffic_ops
+      PGPORT: 5432
+    services:
+      postgres:
+        image: postgres:13
+        env:
+          POSTGRES_USER: traffic_ops
+          POSTGRES_PASSWORD: twelve
+          POSTGRES_DB: traffic_ops
+        ports:
+          - 5432:5432
+        options: --health-cmd pg_isready --health-interval 10s 
--health-timeout 5s --health-retries 5
+      smtp:
+        image: maildev/maildev:2.0.0-beta3
+        ports:
+          - 25:25
+        options: >-
+          --entrypoint=bin/maildev
+          --user=root
+          --health-cmd="sh -c \"[[ \$(wget -qO- http://smtp/healthz) == true 
]]\""
+          --
+          maildev/maildev:2.0.0-beta3
+          --smtp=25
+          --hide-extensions=STARTTLS
+          --web=80
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Cache Alpine Docker image
+        uses: actions/cache@v3
+        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@v3
+        with:
+          path: ./experimental/traffic-portal/node_modules
+          key: ${{ runner.os }}-node-${{ 
hashFiles('./experimental/traffic-portal/package-lock.json') }}
+          restore-keys: |
+            ${{ runner.os }}-node-modules-
+      - name: Initialize Traffic Ops Database
+        id: todb
+        uses: ./.github/actions/todb-init
+      - name: Initialize Traffic Vault Database
+        id: tvdb
+        uses: ./.github/actions/tvdb-init
+      - name: Check Go Version
+        run: echo "::set-output name=value::$(cat GO_VERSION)"
+        id: go-version
+      - name: Install Go
+        uses: actions/setup-go@v3
+        with:
+          go-version: ${{ steps.go-version.outputs.value }}
+      - name: Build Traffic Ops
+        run: |
+          cd "${GITHUB_WORKSPACE}/traffic_ops/traffic_ops_golang"
+          go build .
+
+      # Setup
+      - name: Install dependencies
+        run: sudo apt-get update && sudo apt-get install google-chrome-stable 
postgresql-client gettext-base
+      - name: Create admin user
+        run: |
+          psql -c "INSERT INTO tm_user (username, role, tenant_id, 
local_passwd) VALUES ('admin', 1, 1, 
'SCRYPT:16384:8:1:p0Bppp/6IBeYxSwdLuYddsdMLBU/BNSlLY6fSIF7H1XW4eTbNVeMPVm7TuTEG4FM8PbqLlVwi8sPy8ZJznAlaQ==:sRcHWGe43mm/uEmXTIw37GcLEQZTlWAdf4vJqK8f0MDh8P+8gXoNx+nxWyb3r/0Bh+yyg0g/dUvti/ePZJL+Jw==');"
+      - name: Create SSL Certificates and AES key
+        run: |
+          openssl rand 32 | base64 | tee "${GITHUB_WORKSPACE}/aes.key"
+          openssl req -new -x509 -nodes -newkey rsa:4096 -out 
traffic_ops/traffic_ops_golang/localhost.crt -keyout 
traffic_ops/traffic_ops_golang/localhost.key -subj "/CN=tptests"
+      - name: NPM install
+        run: |
+          cd experimental/traffic-portal
+          npm install

Review Comment:
   `npm ci`



##########
experimental/traffic-portal/package.json:
##########
@@ -40,7 +40,7 @@
     "lint": "ng lint",
     "e2e": "npm run e2e:build && ./node_modules/.bin/nightwatch --config 
'./nightwatch/nightwatch.conf.js'",
     "e2e:build": "./node_modules/.bin/tsc -p ./nightwatch/tsconfig.e2e.json",
-    "e2e:ci": "npm run e2e:build && ./node_modules/.bin/nightwatch --env 
chrome_headless --config './nightwatch/nightwatch.conf.js'",
+    "e2e:ci": "npm run e2e:build && ./node_modules/.bin/nightwatch --env 
chrome_headless --config './nightwatch/nightwatch.conf.js' --window-size 
1920,1080",

Review Comment:
   I think we should set this in the `nightwatch.conf.js` `chrome_headless` 
args instead.



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to