Slim cloud teaching fork of reference-app-copy — java-spring + typescript-react + java-selenide only.
Cloud SSOT (not on-prem):
| Service | URL |
|---|---|
| Allure TestOps | qaguru.testops.cloud · project QA Guru (id=1) |
| Jira Cloud | qa-guru.atlassian.net · project OPS · integration id 7 |
No prod stand deploy in this fork. Local/CI uses compose mock (:9911) and/or ci-gateway (:9821).
GitHub: github.com/qa-guru/reference-app-cloud
reference-app-cloud/
backend/java/backend-java-spring/
frontend/typescript/frontend-typescript-react/ # + frontend/_shared/*
tests/java/tests-java-gradle-junit5-allure3-selenide/
deploy/ # mock + ci nginx, postgres
.github/workflows/ci.yml # slim cloud CI
| Jira | TestOps case | Test |
|---|---|---|
| OPS-8 | #3 | LoginFormTests.loginFormIsMounted |
| OPS-9 | #4 | LoginTests.shouldLoginWithValidCredentials |
| OPS-10 | #5 | LogoutTests.shouldLogoutAfterFormLogin |
| OPS-11 | #6 | RegisterFormTests.registerFormIsMounted |
| OPS-12 | #7 | ReferenceApiTests.healthMatchesContract |
| OPS-13 | #8 | AuthApiTests.loginWithValidCredentials |
Annotations in code: @Issue("OPS-N") + @AllureId("<case-id>").
# mock UI + WireMock API
docker compose --profile mock up -d --build frontend-typescript-react api-mock stand-gateway
cd tests/java/tests-java-gradle-junit5-allure3-selenide
./gradlew test -Denv=reference_mock -DincludeTags=mock -DexcludeTags=visual
# optional: stream to TestOps
export ALLURE_ENDPOINT=https://qaguru.testops.cloud
export ALLURE_PROJECT_ID=1
export ALLURE_TOKEN=<personal-api-token>
allurectl upload ./build/allure-resultsFull stack (real backend) without prod deploy:
docker compose up -d --build
./gradlew test -Denv=reference_ci -DincludeTags=e2e -DexcludeTags=visual.github/workflows/ci.yml — jobs: testops-context, unit/component, harness, e2e-mock-tests, summary. Defaults:
ALLURE_ENDPOINT=https://qaguru.testops.cloudALLURE_PROJECT_ID=1JIRA_BASE_URL=https://qa-guru.atlassian.net
Secrets:
| Name | Source |
|---|---|
ALLURE_TOKEN |
TestOps personal API token |
SONAR_TOKEN |
SonarCloud user token (My Account → Security) |
Vars (defaults applied in workflow when absent):
| Name | Value |
|---|---|
SONAR_HOST_URL |
https://sonarcloud.io |
SONAR_ORGANIZATION |
autotests-ai |
Local bootstrap (after SonarCloud org import + GitHub App install):
printf '%s' "$SONAR_CLOUD_TOKEN" | ../../../scripts/sonarcloud-bootstrap.sh --apply
../../../scripts/sonarcloud-bootstrap.sh --verifyFiles: ~/.config/sonar/cloud-token · ~/.config/sonar/cloud-organization (separate from self-hosted ci-token on sonar.qa.guru).