Implement fully automated Jenkins HW8 setup with Ansible, JCasC and JJB

This commit is contained in:
2026-04-15 22:56:40 +03:00
parent 9f801e52a4
commit 2aa8a49ee1
46 changed files with 1333 additions and 412 deletions
@@ -0,0 +1,11 @@
---
- job:
name: infra-health-check
description: "Проверка инфраструктуры Jenkins/Registry/Agent образов."
project-type: pipeline
concurrent: false
sandbox: true
properties:
- build-discarder:
num-to-keep: 30
dsl: !include-raw-verbatim: ../scripts/infra-health-check.groovy
+16
View File
@@ -0,0 +1,16 @@
---
- job:
name: jobs-uploader
description: "Обновляет Jenkins jobs из JJB YAML (config/jobs)."
project-type: pipeline
concurrent: false
sandbox: true
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: JJB_PATH
default: /workspace/otus-autotests/hw8/config/jobs
description: "Путь до JJB-конфигов"
dsl: !include-raw-verbatim: ../scripts/jobs-uploader.groovy
@@ -0,0 +1,11 @@
---
- job:
name: qa-api-citrus-tests
description: "API тесты модуля citrus-tests (homework_4)."
project-type: pipeline
concurrent: true
sandbox: true
properties:
- build-discarder:
num-to-keep: 50
dsl: !include-raw-verbatim: ../scripts/qa-api-citrus-tests.groovy
@@ -0,0 +1,49 @@
---
- job:
name: qa-mobile-appium-tests
description: "Appium mobile тесты (hw7) с автоскачиванием APK через APP_URL."
project-type: pipeline
concurrent: true
sandbox: true
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: APP_URL
default: http://wiremock:8080/wishlist.apk
description: "URL APK для автоскачивания (capability app)"
- string:
name: DB_URL
default: jdbc:postgresql://sql.otus.kartushin.su:5432/wishlist
description: "JDBC URL"
- string:
name: DB_USER
default: student
description: "DB user"
- string:
name: DB_PASSWORD
default: "student"
description: "DB password"
- string:
name: WISHLISTS_USERNAME
default: user1us
- string:
name: WISHLISTS_PASSWORD
default: user1us
- string:
name: GIFTS_USERNAME
default: user2us
- string:
name: GIFTS_PASSWORD
default: user2us
- string:
name: RESERVATION_USERNAME
default: user3us
- string:
name: RESERVATION_PASSWORD
default: user3us
- string:
name: RESERVATION_OWNER
default: user4us
dsl: !include-raw-verbatim: ../scripts/qa-mobile-appium-tests.groovy
+64
View File
@@ -0,0 +1,64 @@
---
- job:
name: qa-runner
description: "Оркестратор: запускает тестовые job параллельно."
project-type: pipeline
concurrent: true
sandbox: true
properties:
- build-discarder:
num-to-keep: 50
parameters:
- choice:
name: BROWSER
choices:
- chrome
- firefox
- string:
name: BASE_URL
default: https://otus.ru
- string:
name: EXECUTION_MODE
default: selenoid
- string:
name: SELENOID_URL
default: http://host.docker.internal:4444/wd/hub
- choice:
name: HEADLESS
choices:
- "true"
- "false"
- string:
name: APP_URL
default: http://wiremock:8080/wishlist.apk
- string:
name: DB_URL
default: jdbc:postgresql://sql.otus.kartushin.su:5432/wishlist
- string:
name: DB_USER
default: student
- string:
name: DB_PASSWORD
default: "student"
- string:
name: WISHLISTS_USERNAME
default: user1us
- string:
name: WISHLISTS_PASSWORD
default: user1us
- string:
name: GIFTS_USERNAME
default: user2us
- string:
name: GIFTS_PASSWORD
default: user2us
- string:
name: RESERVATION_USERNAME
default: user3us
- string:
name: RESERVATION_PASSWORD
default: user3us
- string:
name: RESERVATION_OWNER
default: user4us
dsl: !include-raw-verbatim: ../scripts/qa-runner.groovy
@@ -0,0 +1,36 @@
---
- job:
name: qa-selenium-tests
description: "Selenium/Selenide тесты (homework_4) с выбором браузера."
project-type: pipeline
concurrent: true
sandbox: true
properties:
- build-discarder:
num-to-keep: 50
parameters:
- choice:
name: BROWSER
choices:
- chrome
- firefox
description: "Браузер для запуска UI-тестов"
- string:
name: BASE_URL
default: https://otus.ru
description: "Базовый URL тестируемого сайта"
- string:
name: EXECUTION_MODE
default: selenoid
description: "Режим запуска (local|selenoid)"
- string:
name: SELENOID_URL
default: http://host.docker.internal:4444/wd/hub
description: "URL Selenoid (используется при EXECUTION_MODE=selenoid)"
- choice:
name: HEADLESS
choices:
- "true"
- "false"
description: "Headless режим"
dsl: !include-raw-verbatim: ../scripts/qa-selenium-tests.groovy