You've already forked jenkins-lib
mirror of
https://github.com/firstBitMarksistskaya/jenkins-lib.git
synced 2025-08-25 20:09:25 +02:00
finalize
This commit is contained in:
@@ -26,7 +26,8 @@
|
||||
1. При использовании EDT версии 2024.1.0 и выше вместо ring используется 1cedtcli, который должен быть прописан в PATH на агенте.
|
||||
1. Для запуска шагов, работающих с 1С (подготовка, синтаксический контроль и т.д.) требуется агент с меткой, совпадающей со значением в поле `v8version` файла конфигурации.
|
||||
1. В качестве ИБ используется файловая база, создаваемая в каталоге `./build/ib`. При необходимости вы можете создать пользователей на фазе инициализации ИБ.
|
||||
1. Для замеров покрытия на агентах должны быть установлены [Coverage41C](https://github.com/1c-syntax/Coverage41C), EDT и сервер отладки dbgs.
|
||||
1. Для замеров покрытия на агентах должны быть установлены [Coverage41C](https://github.com/1c-syntax/Coverage41C), EDT и сервер отладки dbgs. Вместо установки EDT целиком можно использовать только отдельные ее компоненты, см. [Coverage41C/README.md](https://github.com/1c-syntax/Coverage41C).
|
||||
1. Для параллельного выполнения шагов `bdd` и `smoke` с включенными замерами покрытия на одной ноде необходимо, чтобы в `jobConfiguration.json` были указаны **разные** порты сервера отладки для каждого шага. Параллельные билды с замерами покрытия на одной ноде не поддерживаются.
|
||||
|
||||
## Возможности
|
||||
|
||||
|
@@ -85,6 +85,10 @@
|
||||
"coverage" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Выполнять замер покрытия"
|
||||
},
|
||||
"dbgsPort" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -238,6 +242,10 @@
|
||||
"coverage" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Выполнять замер покрытия"
|
||||
},
|
||||
"dbgsPort" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -250,10 +258,6 @@
|
||||
"type" : "string",
|
||||
"description" : "Путь к исполняемому файлу dbgs.\n По умолчанию равен /opt/1cv8/current/dbgs.\n "
|
||||
},
|
||||
"dbgsPort" : {
|
||||
"type" : "integer",
|
||||
"description" : "Порт сервера отладки.\n По умолчанию равен 1550.\n "
|
||||
},
|
||||
"coverage41CPath" : {
|
||||
"type" : "string",
|
||||
"description" : "Путь к исполняемому файлу Coverage41C\n По умолчанию равен Coverage41C.\n "
|
||||
|
@@ -19,12 +19,16 @@ class BddOptions implements Serializable {
|
||||
@JsonPropertyDescription("Выполнять замер покрытия")
|
||||
Boolean coverage = false
|
||||
|
||||
@JsonPropertyDescription("Порт, на котором будет запущен сервер отладки для замера покрытия")
|
||||
Boolean dbgsPort = 1550
|
||||
|
||||
@Override
|
||||
@NonCPS
|
||||
String toString() {
|
||||
return "BddOptions{" +
|
||||
"vrunnerSteps=" + vrunnerSteps +
|
||||
"coverage=" + coverage +
|
||||
'}';
|
||||
"dbgsPort=" + dbgsPort +
|
||||
'}'
|
||||
}
|
||||
}
|
||||
|
@@ -12,11 +12,6 @@ class CoverageOptions implements Serializable {
|
||||
''')
|
||||
String dbgsPath
|
||||
|
||||
@JsonPropertyDescription('''Порт сервера отладки.
|
||||
По умолчанию равен 1550.
|
||||
''')
|
||||
int dbgsPort = 1550
|
||||
|
||||
@JsonPropertyDescription('''Путь к исполняемому файлу Coverage41C
|
||||
По умолчанию равен Coverage41C.
|
||||
''')
|
||||
@@ -27,7 +22,6 @@ class CoverageOptions implements Serializable {
|
||||
String toString() {
|
||||
return "coverageOptions{" +
|
||||
"dbgsPath=" + dbgsPath +
|
||||
"dbgsPort=" + dbgsPort +
|
||||
", coverage41CPath=" + coverage41CPath +
|
||||
'}'
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@ class SmokeTestOptions implements Serializable {
|
||||
@JsonPropertyDescription("""Путь к конфигурационному файлу для xddTestRunner.
|
||||
По умолчанию содержит значение "./tools/xUnitParams.json".
|
||||
""")
|
||||
String xddConfigPath;
|
||||
String xddConfigPath
|
||||
|
||||
@JsonPropertyDescription("""Выполнять публикацию результатов в отчет Allure.
|
||||
По умолчанию выключено.
|
||||
@@ -30,6 +30,9 @@ class SmokeTestOptions implements Serializable {
|
||||
@JsonPropertyDescription("Выполнять замер покрытия")
|
||||
Boolean coverage = false
|
||||
|
||||
@JsonPropertyDescription("Порт, на котором будет запущен сервер отладки для замера покрытия")
|
||||
Boolean dbgsPort = 1650
|
||||
|
||||
@Override
|
||||
@NonCPS
|
||||
String toString() {
|
||||
@@ -39,6 +42,7 @@ class SmokeTestOptions implements Serializable {
|
||||
", publishToAllureReport=" + publishToAllureReport +
|
||||
", publishToJUnitReport=" + publishToJUnitReport +
|
||||
", coverage=" + coverage +
|
||||
", dbgsPort=" + dbgsPort +
|
||||
'}'
|
||||
}
|
||||
}
|
||||
|
@@ -12,6 +12,10 @@ class Bdd implements Serializable {
|
||||
|
||||
private final JobConfiguration config
|
||||
|
||||
public static final String ALLURE_STASH = 'bdd-allure'
|
||||
public static final String COVERAGE_STASH_NAME = 'bdd-coverage'
|
||||
public static final String COVERAGE_STASH_PATH = 'build/out/bdd-coverage.xml'
|
||||
|
||||
Bdd(JobConfiguration config) {
|
||||
this.config = config
|
||||
}
|
||||
@@ -38,17 +42,17 @@ class Bdd implements Serializable {
|
||||
List<Integer> returnStatuses = []
|
||||
|
||||
def coverageOpts = config.coverageOptions
|
||||
def port = coverageOpts.dbgsPort
|
||||
def lockable_resource = RandomStringUtils.random(9, true, false)
|
||||
def port = options.dbgsPort
|
||||
def lockableResource = RandomStringUtils.random(9, true, false)
|
||||
|
||||
if (options.coverage) {
|
||||
lockable_resource = "${env.NODE_NAME}_$port"
|
||||
lockableResource = "${env.NODE_NAME}_$port"
|
||||
}
|
||||
|
||||
steps.lock(null, 1, lockable_resource) {
|
||||
steps.lock(null, 1, lockableResource) {
|
||||
if (options.coverage) {
|
||||
steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=$port")
|
||||
steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:$port -P $workspaceDir -s $srcDir -o build/out/bdd-coverage.xml")
|
||||
steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:$port -P $workspaceDir -s $srcDir -o $COVERAGE_STASH_PATH")
|
||||
steps.cmd("${coverageOpts.coverage41CPath} check -i DefAlias -u http://127.0.0.1:$port")
|
||||
}
|
||||
|
||||
@@ -70,16 +74,13 @@ class Bdd implements Serializable {
|
||||
if (options.coverage) {
|
||||
steps.cmd("${coverageOpts.coverage41CPath} stop -i DefAlias -u http://127.0.0.1:$port")
|
||||
}
|
||||
|
||||
return 0
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
steps.stash('bdd-allure', 'build/out/allure/**', true)
|
||||
steps.stash(ALLURE_STASH, 'build/out/allure/**', true)
|
||||
steps.stash('bdd-cucumber', 'build/out/cucumber/**', true)
|
||||
if (options.coverage) {
|
||||
steps.stash('bdd-coverage', 'build/out/bdd-coverage.xml', true)
|
||||
steps.stash(COVERAGE_STASH_NAME, COVERAGE_STASH_PATH, true)
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -31,13 +31,13 @@ class PublishAllure implements Serializable {
|
||||
safeUnstash('init-allure')
|
||||
}
|
||||
if (config.stageFlags.bdd) {
|
||||
safeUnstash('bdd-allure')
|
||||
safeUnstash(Bdd.ALLURE_STASH)
|
||||
}
|
||||
if (config.stageFlags.yaxunit && config.yaxunitOptions.publishToAllureReport) {
|
||||
safeUnstash(Yaxunit.YAXUNIT_ALLURE_STASH)
|
||||
}
|
||||
if (config.stageFlags.smoke && config.smokeTestOptions.publishToAllureReport) {
|
||||
safeUnstash(SmokeTest.SMOKE_ALLURE_STASH)
|
||||
safeUnstash(SmokeTest.ALLURE_STASH)
|
||||
}
|
||||
|
||||
def env = steps.env()
|
||||
|
@@ -1,18 +1,20 @@
|
||||
package ru.pulsar.jenkins.library.steps
|
||||
|
||||
import hudson.FilePath
|
||||
import org.apache.commons.lang.RandomStringUtils
|
||||
import ru.pulsar.jenkins.library.IStepExecutor
|
||||
import ru.pulsar.jenkins.library.configuration.JobConfiguration
|
||||
import ru.pulsar.jenkins.library.ioc.ContextRegistry
|
||||
import ru.pulsar.jenkins.library.utils.FileUtils
|
||||
import ru.pulsar.jenkins.library.utils.Logger
|
||||
import ru.pulsar.jenkins.library.utils.PortPicker
|
||||
import ru.pulsar.jenkins.library.utils.StringJoiner
|
||||
import ru.pulsar.jenkins.library.utils.VRunner
|
||||
|
||||
class SmokeTest implements Serializable {
|
||||
|
||||
public static final String SMOKE_ALLURE_STASH = 'smoke-allure'
|
||||
public static final String ALLURE_STASH = 'smoke-allure'
|
||||
public static final String COVERAGE_STASH_NAME = 'smoke-coverage'
|
||||
public static final String COVERAGE_STASH_PATH = 'build/out/smoke-coverage.xml'
|
||||
|
||||
private final JobConfiguration config
|
||||
|
||||
@@ -104,25 +106,31 @@ class SmokeTest implements Serializable {
|
||||
command += " $testsPath"
|
||||
}
|
||||
|
||||
def coverageOpts = config.coverageOptions;
|
||||
def port = PortPicker.getPort();
|
||||
port = 1550;
|
||||
def coverageOpts = config.coverageOptions
|
||||
def port = options.dbgsPort
|
||||
def lockableResource = RandomStringUtils.random(9, true, false)
|
||||
if (options.coverage) {
|
||||
steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=$port")
|
||||
steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:$port -P $workspaceDir -s $srcDir -o build/out/smoketest-coverage.xml")
|
||||
steps.cmd("${coverageOpts.coverage41CPath} check -i DefAlias -u http://127.0.0.1:$port")
|
||||
lockableResource = "${env.NODE_NAME}_$port"
|
||||
}
|
||||
|
||||
steps.withEnv(logosConfig) {
|
||||
VRunner.exec(command, true)
|
||||
}
|
||||
steps.lock(null, 1, lockableResource) {
|
||||
if (options.coverage) {
|
||||
steps.start("${coverageOpts.dbgsPath} --addr=127.0.0.1 --port=$port")
|
||||
steps.start("${coverageOpts.coverage41CPath} start -i DefAlias -u http://127.0.0.1:$port -P $workspaceDir -s $srcDir -o $COVERAGE_STASH_PATH")
|
||||
steps.cmd("${coverageOpts.coverage41CPath} check -i DefAlias -u http://127.0.0.1:$port")
|
||||
}
|
||||
|
||||
if (options.coverage) {
|
||||
steps.cmd("${coverageOpts.coverage41CPath} stop -i DefAlias -u http://127.0.0.1:$port")
|
||||
steps.withEnv(logosConfig) {
|
||||
VRunner.exec(command, true)
|
||||
}
|
||||
|
||||
if (options.coverage) {
|
||||
steps.cmd("${coverageOpts.coverage41CPath} stop -i DefAlias -u http://127.0.0.1:$port")
|
||||
}
|
||||
}
|
||||
|
||||
if (options.publishToAllureReport) {
|
||||
steps.stash(SMOKE_ALLURE_STASH, "$allureReportDir/**", true)
|
||||
steps.stash(ALLURE_STASH, "$allureReportDir/**", true)
|
||||
steps.archiveArtifacts("$allureReportDir/**")
|
||||
}
|
||||
|
||||
@@ -132,7 +140,7 @@ class SmokeTest implements Serializable {
|
||||
}
|
||||
|
||||
if (options.coverage) {
|
||||
steps.stash('smoketest-coverage', 'build/out/smoketest-coverage.xml', true)
|
||||
steps.stash(COVERAGE_STASH_NAME, COVERAGE_STASH_PATH, true)
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -75,13 +75,13 @@ class SonarScanner implements Serializable {
|
||||
StringJoiner coveragePathsConstructor = new StringJoiner(",")
|
||||
|
||||
if (config.stageFlags.bdd && config.bddOptions.coverage) {
|
||||
steps.unstash("bdd-coverage")
|
||||
coveragePathsConstructor.add("build/out/bdd-coverage.xml")
|
||||
steps.unstash(Bdd.COVERAGE_STASH_NAME)
|
||||
coveragePathsConstructor.add(Bdd.COVERAGE_STASH_PATH)
|
||||
}
|
||||
|
||||
if (config.stageFlags.smoke && config.smokeTestOptions.coverage) {
|
||||
steps.unstash("smoketest-coverage")
|
||||
coveragePathsConstructor.add("build/out/smoketest-coverage.xml")
|
||||
steps.unstash(SmokeTest.COVERAGE_STASH_NAME)
|
||||
coveragePathsConstructor.add(SmokeTest.COVERAGE_STASH_PATH)
|
||||
}
|
||||
|
||||
String coveragePaths = coveragePathsConstructor.toString()
|
||||
|
@@ -75,7 +75,6 @@ class jobConfigurationTest {
|
||||
rule.assertLogContains("sonarScannerToolName='sonar-scanner'", run)
|
||||
rule.assertLogContains("initMethod=FROM_SOURCE", run)
|
||||
rule.assertLogContains("dbgsPath=C:\\Program files\\1cv8\\8.3.12.1500\\bin\\dbgs.exe", run)
|
||||
rule.assertLogContains("dbgsPort=4543", run)
|
||||
rule.assertLogContains("coverage41CPath=C:\\coverage\\Coverage41C.exe", run)
|
||||
}
|
||||
}
|
@@ -13,7 +13,6 @@
|
||||
},
|
||||
"coverage": {
|
||||
"dbgsPath": "C:\\\\Program files\\\\1cv8\\\\8.3.12.1500\\\\bin\\\\dbgs.exe",
|
||||
"dbgsPort": 4543,
|
||||
"coverage41CPath": "C:\\\\coverage\\\\Coverage41C.exe"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user