E2E Tests wieder Leben einhauchen
Die E2E-Tests funktionieren leider auch nicht mehr so richtig:
- lokal hat der Admin nicht mehr das Passwort "admin" -> Kann man aber über die Variable
set E2E_PASSWORD=...
geeignet setzen. - Einige Selenium Tests sind wohl grundsätzlich kaputt
- Die E2E-Tests sollten auch automatisch (in der Pipeline) getestet werden können. => gitsearch in einem weiteren Docker-Container lokal starten
- Die Tests sollten auch in sonarQube angezeigt werden.
- integration tests
- e2e tests running in pipeline
Link issues together to show that they're related. Learn more.
Activity
- Michael Breu changed milestone to %2022 März Sprint
changed milestone to %2022 März Sprint
- Michael Breu created merge request !94 (closed) to address this issue
created merge request !94 (closed) to address this issue
- Michael Breu mentioned in merge request !94 (closed)
mentioned in merge request !94 (closed)
- Michael Breu assigned to @eduard.frankford
assigned to @eduard.frankford
- Maintainer
-
lokal hat der Admin nicht mehr das Passwort "admin" -> Kann man aber über die Variable
set E2E_PASSWORD=...
geeignet setzen. - Einige Selenium Tests sind wohl grundsätzlich kaputt
- Die E2E-Tests sollten auch manuel (in der Pipeline) getestet werden können. => nach einem merge/ deployment E2E Tests auf dem Development Server ausführen
Edited by Eduard Frankford -
lokal hat der Admin nicht mehr das Passwort "admin" -> Kann man aber über die Variable
- Maintainer
- Subtask: In der Pipeline Image publishen (development)
- Subtask: Dieses Image automatisch pullen und deployen im dev server
Edited by Eduard Frankford - Please register or sign in to reply
- Michael Breu changed milestone to %2022 April/Mai Sprint
changed milestone to %2022 April/Mai Sprint
- Michael Breu changed the description
changed the description
- Eduard Frankford marked the checklist item integration tests as completed
marked the checklist item integration tests as completed
- Michael Breu changed milestone to %2022 June Sprint
changed milestone to %2022 June Sprint
- Michael Breu changed due date to June 10, 2022
changed due date to June 10, 2022
- Eduard Frankford marked the checklist item e3e tests as completed
marked the checklist item e3e tests as completed
- Eduard Frankford changed the description
changed the description
- Author Owner
Hallo Eduard,
Ich habe mal die neue Anleitung unter https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/wikis/technical/setup/Update-Setup-Sharing-Plattform getestet.
Grundsätzlich funktioniert sie. Allerdings sind mir ein paar Punkte aufgefallen:
- es steht nun ein Passwort im Wiki? -Djib.to.auth.password=cShzXXXXXXXX
- in der alten Version (nun wohl Deprecated) wurden die Variablen
GIT_BRANCH="
git rev-parse --abbrev-ref HEAD" COMMIT_ID=
git rev-parse HEADCOMMIT_DATE="
git show -s --format=%ci" SPRING_PROFILES_ACTIVE=...
in der Kommandozeile gesetzt. Nun wirft es Fehler - Du rufst das Maven-Skript ohne
-Pprod
auf. Ich hab's mit -Pprod` getestet: Das läuft wieder auf denselben Fehler (siehe unten)
Folgendes Deployment mit -Pprod funktioniert nicht (Container wird nicht vollständig initialisiert)
git checkout 319-Reactivate-rememberme-an-original-URL-from-315 git pull export MAVEN_USER_HOME=`pwd`/.maven && ./mvnw package -DskipTests jib:build -Djib.to.image=sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch -Djib.to.auth.username=gitlab-ci-token -Djib.to.auth.password=cShzdALy7iF6UdGHJXS9 -Pprod -Dmaven.repo.local=$MAVEN_USER_HOME docker pull sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch (cd src/main/docker/; sudo GIT_BRANCH="`git rev-parse --abbrev-ref HEAD`" COMMIT_ID=`git rev-parse HEAD` COMMIT_DATE="`git show -s --format=%ci`" SPRING_PROFILES_ACTIVE=staging,swagger docker-compose -f gitsearch.yml up -d --no-deps --build gitsearch-app)
- Maintainer
Hallo Michael, sorry für die späte Antwort.
Punkt 1: Das ist nur das Passwort wo das Docker Image gespeichert ist. Ich hab mir gedacht, wenn jemand die sharing platform deployen will dann sollte er auch Zugriff darauf haben, wenn er schon auf das Wiki zugriff hat.
Punkt 2: Ja ich kann da mehr recherchieren warum die nicht angezeigt werden, aber ich hab mir generell gedacht, dass diese Variablen nicht viel Sinn machen, dass wir sie in der UI anzeigen und deswegen hab ich gedacht, dass es ok ist sie weg zu lassen
Punkt 3: -Prod wird nicht aufgerufen weil ich die Flags so setze: export SPRING_PROFILES_ACTIVE=staging,swagger Ich setze staging, weil das ja das deployment für den dev server ist. Für den Prod Server kann ich mir das auch nochmal genauer anschauen was da los ist, wenn du willst?
- Author Owner
Leider noch ein Punkt:
Wenn man manuell deployed nach Anleitung https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/wikis/technical/setup/Update-Setup-Sharing-Plattform (z.B. einen anderen Branch), dann wirkt sich das auf die folgenden Pipeline-Deployments aus :-(
Siehe z.B. https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/jobs/9648
Edited by Michael Breu - Maintainer
Glaub da failed git pull, da müsste man wsl manuell mergen, weil irgendwas mit git fehlschlägt. Kannst du kurz beschreiben wie der Fehler genau ausgelöst wurde?
- Michael Breu assigned to @Michael.Breu and unassigned @eduard.frankford
assigned to @Michael.Breu and unassigned @eduard.frankford
- Michael Breu assigned to @eduard.frankford and unassigned @Michael.Breu
assigned to @eduard.frankford and unassigned @Michael.Breu
- Author Owner
Hallo Eduard,
Wir haben da noch ein konzeptionelles und ein technisches Problem:
Konzeptionell
Das konzeptionelle Problem ist, dass die Vorgaben unter https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/wikis/technical/setup/Update-Setup-Sharing-Plattform ein neues Image erzeugen (z.B. für den
master
-Branch).Aber wie ist garantiert, dass da nicht eine andere Pipeline dazwischenpfuscht, und das Image gerade mit einem anderen Branch überschreibt, wenn ich mir eigentlich mit
git pull
dasmaster
-Image holen möchte.Können wir das Image wenigstens mit dem Branch-Namen tagen, so dass sichergestellt ist, dass wir immer das Image zum aktuellen Branch bekommen?
Technisch
Ich habe gestern versucht, die Anwendung in Produktion nach dem neuen Verfahren zu deployen: Ich habe den Masterbranch ausgecheckt, und
export MAVEN_USER_HOME=
pwd/.maven && ./mvnw package -DskipTests jib:build -Djib.to.image=sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch -Djib.to.auth.username=gitlab-ci-token -Djib.to.auth.password=cShzdALy7iF6UdGHJXS9 -Dmaven.repo.local=$MAVEN_USER_HOME
aufgerufen:Ergebnis: (siehe Fehlermeldung ganz unten, auf sharing.codability-austria mit branch "development" funktionierts, obwohl identisch)
export MAVEN_USER_HOME=`pwd`/.maven && ./mvnw package -DskipTests jib:build -Djib.to.image=sharing-codeability.uibk.ac.at:5051/sharing/codeability-sharing-platform/gitsearch -Djib.to.auth.username=gitlab-ci-token -Djib.to.auth.password=cShzdALy7iF6UdGHJXS9 -Dmaven.repo.local=$MAVEN_USER_HOME [INFO] Scanning for projects... [INFO] [INFO] -------------------< at.ac.uibk.gitsearch:gitsearch >------------------- [INFO] Building Gitsearch 1.3.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.2.0:copy-resources (default-resources) @ gitsearch --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 5 resources [INFO] Copying 39 resources [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ gitsearch --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 5 resources [INFO] Copying 39 resources [INFO] [INFO] --- maven-enforcer-plugin:3.0.0:enforce (enforce-versions) @ gitsearch --- [INFO] [INFO] --- jacoco-maven-plugin:0.8.8:prepare-agent (pre-unit-tests) @ gitsearch --- [INFO] argLine set to -javaagent:/home/michael/gitsearch/.maven/org/jacoco/org.jacoco.agent/0.8.8/org.jacoco.agent-0.8.8-runtime.jar=destfile=/home/michael/gitsearch/target/jacoco.exec -Djava.security.egd=file:/dev/./urandom -Xmx256m [INFO] [INFO] --- properties-maven-plugin:1.0.0:read-project-properties (default) @ gitsearch --- [INFO] [INFO] --- checksum-maven-plugin:1.11:files (create-pre-compiled-webapp-checksum) @ gitsearch --- [INFO] [INFO] --- maven-antrun-plugin:3.0.0:run (eval-frontend-checksum) @ gitsearch --- [INFO] Executing tasks [INFO] Executed tasks [INFO] [INFO] --- frontend-maven-plugin:1.12.1:install-node-and-npm (install-node-and-npm) @ gitsearch --- [INFO] Installing node version v16.13.1 [INFO] Unpacking /home/michael/gitsearch/.maven/com/github/eirslett/node/16.13.1/node-16.13.1-linux-x64.tar.gz into /home/michael/gitsearch/target/node/tmp [INFO] Copying node binary from /home/michael/gitsearch/target/node/tmp/node-v16.13.1-linux-x64/bin/node to /home/michael/gitsearch/target/node/node [INFO] Installed node locally. [INFO] Installing npm version 8.3.2 [INFO] Unpacking /home/michael/gitsearch/.maven/com/github/eirslett/npm/8.3.2/npm-8.3.2.tar.gz into /home/michael/gitsearch/target/node/node_modules [INFO] Installed npm locally. [INFO] [INFO] --- frontend-maven-plugin:1.12.1:npm (npm install) @ gitsearch --- [INFO] Running 'npm install' in /home/michael/gitsearch [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT postinstall [INFO] > npm run e2e:update-webdriver [INFO] [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT e2e:update-webdriver [INFO] > webdriver-manager update --gecko false [INFO] [INFO] [13:05:35] I/update - chromedriver: file exists /home/michael/gitsearch/node_modules/webdriver-manager/selenium/chromedriver_104.0.5112.79.zip [INFO] [13:05:35] I/update - chromedriver: unzipping chromedriver_104.0.5112.79.zip [INFO] [13:05:35] I/update - chromedriver: setting permissions to 0755 for /home/michael/gitsearch/node_modules/webdriver-manager/selenium/chromedriver_104.0.5112.79 [INFO] [13:05:35] I/update - chromedriver: chromedriver_104.0.5112.79 up to date [INFO] [13:05:35] I/update - selenium standalone: file exists /home/michael/gitsearch/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar [INFO] [13:05:35] I/update - selenium standalone: selenium-server-standalone-3.141.59.jar up to date [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT prepare [INFO] > husky install [INFO] [INFO] husky - Git hooks installed [INFO] [INFO] up to date, audited 2105 packages in 5s [INFO] [INFO] 181 packages are looking for funding [INFO] run `npm fund` for details [INFO] [INFO] 11 vulnerabilities (2 moderate, 7 high, 2 critical) [INFO] [INFO] To address issues that do not require attention, run: [INFO] npm audit fix [INFO] [INFO] To address all issues (including breaking changes), run: [INFO] npm audit fix --force [INFO] [INFO] Run `npm audit` for details. [INFO] [INFO] --- frontend-maven-plugin:1.12.1:npm (webapp build dev) @ gitsearch --- [INFO] npm not inheriting proxy config from Maven [INFO] Running 'npm run webapp:build' in /home/michael/gitsearch [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT webapp:build [INFO] > npm run clean-www && npm run webapp:build:dev [INFO] [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT clean-www [INFO] > rimraf target/classes/static/app/{src,target/} [INFO] [INFO] [INFO] > gitsearch@1.2.0-SNAPSHOT webapp:build:dev [INFO] > ng build --configuration development [INFO] [INFO] - Generating browser application bundles (phase: setup)... [INFO] /home/michael/gitsearch/node_modules/@ngtools/webpack/src/ngcc_processor.js:135 [INFO] throw new Error(errorMessage + `NGCC failed${errorMessage ? ', see above' : ''}.`); [INFO] ^ [INFO] [INFO] Error: spawnSync /home/michael/gitsearch/target/node/node ENOENTNGCC failed, see above. [INFO] at NgccProcessor.process (/home/michael/gitsearch/node_modules/@ngtools/webpack/src/ngcc_processor.js:135:19) [INFO] at /home/michael/gitsearch/node_modules/@ngtools/webpack/src/ivy/plugin.js:147:27 [INFO] at Hook.eval [as call] (eval at create (/home/michael/gitsearch/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:16:1) [INFO] at Hook.CALL_DELEGATE [as _call] (/home/michael/gitsearch/node_modules/tapable/lib/Hook.js:14:14) [INFO] at Compiler.newCompilation (/home/michael/gitsearch/node_modules/webpack/lib/Compiler.js:1054:30) [INFO] at /home/michael/gitsearch/node_modules/webpack/lib/Compiler.js:1099:29 [INFO] at eval (eval at create (/home/michael/gitsearch/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:31:1) [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.892 s [INFO] Finished at: 2022-08-04T13:05:40+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.1:npm (webapp build dev) on project gitsearch: Failed to run task: 'npm run webapp:build' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
- Michael Breu changed milestone to %2022 July/August/Sep Sprint
changed milestone to %2022 July/August/Sep Sprint
- Michael Breu mentioned in issue #324 (closed)
mentioned in issue #324 (closed)
- Maintainer
Antwort zum technischen Teil
Hallo @Michael.Breu, das ist leider ein ganz ganz schwieriger Fehler zum Finden gewesen. Und zwar kommt das anscheinend vor, wenn ein package den neuen Angular compiler nicht kann. Und um das zu finden musste ich alle packages einzeln löschen und schauen ob der build durch geht. Es schaut so aus als ob das von einem der folgenden Pakete verursacht wird: "emoji-toolkit": "^6.6.0", "katex": "^0.15.2", Wenn ich die lösche dann geht der build durch.
Sollte mit https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/merge_requests/135 gelöst werden.
Antwort zum konzeptionellen Teil
Ja ich würde vorschlagen, dass wir das deployment als manuellen pipeline schritt hinzufügen und die images auch jeweils manuell in verbindung erstellen und dann auch getagged mit dem branch namen. Werd ich implementieren sobald die migration auf das neue Filesystem vollzogen ist.
Sollte mit https://sharing-codeability.uibk.ac.at/sharing/codeability-sharing-platform/-/merge_requests/135 implementiert worden sein. Also man kann jetzt in jeder pipeline manuell das image bauen und dann auch manuell den jeweiligen branch deployen. :-)
Bitte kurz testen und dann mergen.
Edited by Eduard Frankford - Maintainer
Kommentar wurde bearbeitet siehe oben.