Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
b52d8a0
Add container messages
carlosthe19916 Jul 8, 2021
35a3726
change message
carlosthe19916 Jul 8, 2021
781b629
message
carlosthe19916 Jul 8, 2021
3b46812
add pull_request_target
carlosthe19916 Jul 8, 2021
a453e92
Secrets
carlosthe19916 Jul 8, 2021
9326d18
pull_request
carlosthe19916 Jul 8, 2021
fea7024
github-token
carlosthe19916 Jul 8, 2021
7fff2f6
Comment
carlosthe19916 Jul 8, 2021
d056eac
2 steps
carlosthe19916 Jul 8, 2021
b7440e7
paste
carlosthe19916 Jul 8, 2021
0cb7514
message
carlosthe19916 Jul 8, 2021
c811136
Test containers
carlosthe19916 Jul 8, 2021
2e4903a
change message
carlosthe19916 Jul 8, 2021
bdd549a
script
carlosthe19916 Jul 8, 2021
33d8d36
change body
carlosthe19916 Jul 8, 2021
377de01
change body
carlosthe19916 Jul 8, 2021
9141ebc
format
carlosthe19916 Jul 8, 2021
9873d6d
Format
carlosthe19916 Jul 8, 2021
27b1e83
change message
carlosthe19916 Jul 8, 2021
96e7907
github.event.pull_request.head.repo.full_name
carlosthe19916 Jul 8, 2021
d310631
twice
carlosthe19916 Jul 8, 2021
b679e65
branch
carlosthe19916 Jul 8, 2021
8008b83
Change message content
carlosthe19916 Jul 9, 2021
86299cb
Merge branch 'main' into containerMessage
carlosthe19916 Jul 9, 2021
3b0e9b3
Change test containers name
carlosthe19916 Jul 9, 2021
6d2863c
change image name
carlosthe19916 Jul 9, 2021
d82c51f
Add integration tests
carlosthe19916 Jul 9, 2021
e81a6cf
Change name
carlosthe19916 Jul 9, 2021
77dd074
Change test name
carlosthe19916 Jul 9, 2021
a4b8ccf
Fix location
carlosthe19916 Jul 9, 2021
4dc2ec7
clone tackle project
carlosthe19916 Jul 9, 2021
2ebcfad
Build directory
carlosthe19916 Jul 9, 2021
79d08c5
Change build image registry
carlosthe19916 Jul 9, 2021
d0d9577
Force error to verify integration tests catches bug
carlosthe19916 Jul 9, 2021
31bcb6b
Restore bug
carlosthe19916 Jul 9, 2021
920bae9
Restore file
carlosthe19916 Jul 13, 2021
3094f49
force commit
carlosthe19916 Aug 6, 2021
dcfca9b
Restore file
carlosthe19916 Aug 6, 2021
2fa68e3
Not set custom image
carlosthe19916 Aug 6, 2021
e9f1f57
Restore custom image and change user/password
carlosthe19916 Aug 8, 2021
d24c778
add retries
carlosthe19916 Aug 9, 2021
5674626
force commit
carlosthe19916 Aug 11, 2021
4f52ce3
restore changes
carlosthe19916 Aug 11, 2021
025b70d
force commit
carlosthe19916 Aug 12, 2021
ed01f91
Restore change
carlosthe19916 Aug 12, 2021
72c65af
Merge branch 'main' into integration-tests
carlosthe19916 Sep 2, 2021
88dd48e
Merge branch 'main' into integration-tests
carlosthe19916 Sep 3, 2021
6ba9e0b
remove video recording and avoid firing dependabot PRs
carlosthe19916 Sep 3, 2021
9a1e603
Merge branch 'main' into integration-tests
carlosthe19916 Sep 30, 2021
93c78ea
Add tiers
carlosthe19916 Sep 30, 2021
c8a4547
fix dependencies
carlosthe19916 Sep 30, 2021
c68bdfd
Fix verify step
carlosthe19916 Sep 30, 2021
8cd54aa
fail-fast: false
carlosthe19916 Sep 30, 2021
44b467c
use to dev branch
carlosthe19916 Oct 1, 2021
5272fa6
change job name
carlosthe19916 Oct 1, 2021
1d4d5bc
replace cypress-io/github-action@v2 by npx
carlosthe19916 Oct 1, 2021
8e4bbca
Add `npm install .`
carlosthe19916 Oct 1, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 0 additions & 139 deletions .github/workflows/ci-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,142 +189,3 @@ jobs:
snapshot: false
tags: "main"
buildoptions: "--pull"

test-container-images:
needs: [container-images]
runs-on: ubuntu-latest
strategy:
matrix:
os: [ubuntu-latest]
browser: [chrome, firefox]
services:
keycloak:
image: quay.io/keycloak/keycloak:12.0.2
ports:
- 8180:8080
env:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
options: >-
--health-cmd "curl --fail http://localhost:8080/auth || exit 1"
--health-interval 10s
--health-timeout 5s
--health-retries 5
controls-db:
image: postgres:13.1
ports:
- 5433:5432
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: controls_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
application-inventory-db:
image: postgres:13.1
ports:
- 5434:5432
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: application_inventory_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
pathfinder-db:
image: postgres:13.1
ports:
- 5435:5432
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: pathfinder_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- name: Keycloak Admin CLI
uses: carlosthe19916/keycloak-action@0.4
with:
server: http://keycloak:8080/auth
username: admin
password: admin
kcadm: create realms -f konveyor-realm.json
- name: Controls API
run: |
docker run -d --name controls --network ${{ job.services.controls-db.network }} --network-alias controls -p 8081:8080 \
-e QUARKUS_HTTP_PORT=8080 \
-e QUARKUS_DATASOURCE_USERNAME=user \
-e QUARKUS_DATASOURCE_PASSWORD=password \
-e QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://controls-db:5432/controls_db \
-e QUARKUS_OIDC_AUTH_SERVER_URL=http://keycloak:8080/auth/realms/konveyor \
-e QUARKUS_OIDC_CLIENT_ID=controls-api \
-e QUARKUS_OIDC_CREDENTIALS_SECRET=secret \
quay.io/konveyor/tackle-controls:latest-native
sleep 5s && docker logs controls
- name: Application inventory API
run: |
docker run -d --name application-inventory --network ${{ job.services.application-inventory-db.network }} --network-alias application-inventory -p 8082:8080 \
-e QUARKUS_HTTP_PORT=8080 \
-e QUARKUS_DATASOURCE_USERNAME=user \
-e QUARKUS_DATASOURCE_PASSWORD=password \
-e QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://application-inventory-db:5432/application_inventory_db \
-e QUARKUS_OIDC_AUTH_SERVER_URL=http://keycloak:8080/auth/realms/konveyor \
-e QUARKUS_OIDC_CLIENT_ID=application-inventory-api \
-e QUARKUS_OIDC_CREDENTIALS_SECRET=secret \
-e IO_TACKLE_APPLICATIONINVENTORY_SERVICES_CONTROLS_SERVICE=controls:8080 \
quay.io/konveyor/tackle-application-inventory:latest-native
sleep 5s && docker logs application-inventory
- name: Pathfinder API
run: |
docker run -d --name pathfinder --network ${{ job.services.pathfinder-db.network }} --network-alias pathfinder -p 8083:8080 \
-e QUARKUS_HTTP_PORT=8080 \
-e QUARKUS_DATASOURCE_USERNAME=user \
-e QUARKUS_DATASOURCE_PASSWORD=password \
-e QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://pathfinder-db:5432/pathfinder_db \
-e QUARKUS_OIDC_AUTH_SERVER_URL=http://keycloak:8080/auth/realms/konveyor \
-e QUARKUS_OIDC_CLIENT_ID=pathfinder-api \
-e QUARKUS_OIDC_CREDENTIALS_SECRET=secret \
quay.io/konveyor/tackle-pathfinder:latest-native
sleep 5s && docker logs pathfinder
- name: Tackle UI
run: |
docker run -d --name tackle-ui --network ${{ job.services.keycloak.network }} --network-alias tackle-ui -p 3000:8080 \
-e SSO_REALM=konveyor \
-e SSO_CLIENT_ID=tackle-ui \
-e SSO_SERVER_URL=http://keycloak:8080/auth \
-e CONTROLS_API_URL=http://controls:8080/controls \
-e APPLICATION_INVENTORY_API_URL=http://application-inventory:8080/application-inventory \
-e PATHFINDER_API_URL=http://pathfinder:8080/pathfinder \
quay.io/konveyor/tackle-ui:main
sleep 5s && docker logs tackle-ui
- name: Cypress run
uses: cypress-io/github-action@v2
with:
record: false
wait-on: "http://localhost:3000"
wait-on-timeout: 120
config: pageLoadTimeout=100000
browser: ${{ matrix.browser }}
spec: cypress/**/*.test.ts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_auth_base_url: http://localhost:3000/auth
- uses: actions/upload-artifact@v1
if: failure()
with:
name: container-screenshots-${{ matrix.os }}-${{ matrix.browser }}
path: cypress/screenshots
- uses: actions/upload-artifact@v1
if: always()
with:
name: container-videos-${{ matrix.os }}-${{ matrix.browser }}
path: cypress/videos
129 changes: 129 additions & 0 deletions .github/workflows/pr-regresion-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: Regresion tests

on:
push:
branches-ignore:
- "dependabot/**"
paths-ignore:
- ".gitignore"
- "LICENSE"
- "*.md"
- ".github/ISSUE_TEMPLATE/**"
pull_request:
paths-ignore:
- ".gitignore"
- "LICENSE"
- "*.md"
- ".github/ISSUE_TEMPLATE/**"

jobs:
container-image:
runs-on: ubuntu-latest
steps:
- name: Checkout tackle-ui
uses: actions/checkout@v2
with:
path: tackle-ui
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Build JS
run: |
yarn --cwd tackle-ui install
yarn --cwd tackle-ui build
- name: Build container image
run: docker build -t tackle/tackle-ui:current-pr tackle-ui
- name: Save container image
run: docker save -o tackle-ui.tar tackle/tackle-ui:current-pr
- name: Upload container image
uses: actions/upload-artifact@v2
with:
name: tackle-ui
path: tackle-ui.tar

k8s:
runs-on: ubuntu-latest
needs: [container-image]
strategy:
fail-fast: false
matrix:
tier: ["@tier1", "@tier2", "@tier3"]
steps:
- name: Download container image
uses: actions/download-artifact@v2
with:
name: tackle-ui
path: .
- name: Load container image
run: docker load -i tackle-ui.tar

- name: Checkout tackle
uses: actions/checkout@v2
with:
repository: konveyor/tackle
path: tackle
- name: Checkout tackle-ui-tests
uses: actions/checkout@v2
with:
repository: konveyor/tackle-ui-tests
path: tackle-ui-tests
ref: dev
- name: Setup Minikube
uses: manusa/actions-setup-minikube@v2.3.1
with:
minikube version: v1.18.1
kubernetes version: v1.20.2
start args: "--addons=registry --addons=ingress"
- name: Validate Minikube
run: minikube status | grep Running
- name: Validate Cluster
run: kubectl get nodes
- name: Validate enabled addon in arg
run: minikube addons list -o json | jq '.registry.Status' | grep enabled
- name: Kubectl create namespace
run: kubectl create ns tackle

- name: Deploy tackle
run: sleep 60s && kubectl create -f tackle/kubernetes/kubernetes-tackle.yaml -n tackle

- name: Verify keycloak
run: kubectl wait deployment/keycloak --for condition=available --timeout=-1s -n tackle
- name: Verify tackle-controls
run: kubectl wait deployment/tackle-controls --for condition=available --timeout=-1s -n tackle
- name: Verify tackle-application-inventory
run: kubectl wait deployment/tackle-application-inventory --for condition=available --timeout=-1s -n tackle
- name: Verify tackle-pathfinder
run: kubectl wait deployment/tackle-pathfinder --for condition=available --timeout=-1s -n tackle
- name: Verify tackle-ui
run: kubectl wait deployment/tackle-ui --for condition=available --timeout=-1s -n tackle

- name: Set custom tackle-ui
run: |
kubectl patch deployment tackle-ui --patch '{"spec":{"template":{"spec":{"containers":[{"name":"tackle-ui","imagePullPolicy":"Never"}]}}}}' -n tackle
kubectl set image deployment/tackle-ui tackle-ui=tackle/tackle-ui:current-pr -n tackle
kubectl wait deployment/tackle-ui --for condition=available --timeout=-1s -n tackle

- name: Wait for Ingress
run: |
bash -c 'external_ip="";
while [ -z $external_ip ];
do echo "Waiting for end point...";
external_ip=$(kubectl get ingress tackle --template="{{range .status.loadBalancer.ingress}}{{.ip}}{{end}}" -n tackle);[ -z "$external_ip" ] &&
sleep 10;
done;
echo "End point ready:" &&
echo $external_ip;
export endpoint=$external_ip;
echo "CYPRESS_tackleUrl=https://$external_ip" >>$GITHUB_ENV'

- name: Cypress run
run: |
cd tackle-ui-tests
npm install .
npx cypress run --spec **/*.test.ts --env grepTags=${{ matrix.tier }},user=tackle,pass=password,tackleUrl=${{ env.CYPRESS_tackleUrl }}
- uses: actions/upload-artifact@v1
if: failure()
with:
name: integration-tests-screenshots
path: tackle-ui-tests/cypress/screenshots