1
0

Скромные попытки завести EDT

This commit is contained in:
Nikita Gryzlov
2020-04-27 18:05:45 +03:00
parent 99368710ce
commit cc1ae0d959
10 changed files with 92 additions and 3 deletions

View File

@@ -6,7 +6,8 @@
}, },
"stages": { "stages": {
"sonarqube": false, "sonarqube": false,
"syntaxCheck": false "syntaxCheck": false,
"edtValidate": false
}, },
"sonarqube": { "sonarqube": {
"sonarQubeInstallation": "", "sonarQubeInstallation": "",

View File

@@ -33,6 +33,10 @@
"syntaxCheck" : { "syntaxCheck" : {
"type" : "boolean", "type" : "boolean",
"description" : "Синтаксический контроль включен" "description" : "Синтаксический контроль включен"
},
"edtValidate" : {
"type" : "boolean",
"description" : "Валидация EDT включена"
} }
} }
}, },

View File

@@ -25,4 +25,6 @@ interface IStepExecutor {
void withSonarQubeEnv(String installationName, Closure body) void withSonarQubeEnv(String installationName, Closure body)
EnvironmentAction env() EnvironmentAction env()
void createDir(String path)
} }

View File

@@ -61,4 +61,9 @@ class StepExecutor implements IStepExecutor {
EnvironmentAction env() { EnvironmentAction env() {
return steps.env return steps.env
} }
@Override
void createDir(String path) {
steps.createDir(path)
}
} }

View File

@@ -12,12 +12,16 @@ class StageFlags implements Serializable {
@JsonPropertyDescription("Синтаксический контроль включен") @JsonPropertyDescription("Синтаксический контроль включен")
boolean syntaxCheck boolean syntaxCheck
@JsonPropertyDescription("Валидация EDT включена")
boolean edtValidate
@Override @Override
@NonCPS @NonCPS
String toString() { String toString() {
return "StageFlags{" + return "StageFlags{" +
"sonarQube=" + sonarqube + "sonarqube=" + sonarqube +
", syntaxCheck=" + syntaxCheck + ", syntaxCheck=" + syntaxCheck +
", edtValidate=" + edtValidate +
'}'; '}';
} }
} }

View File

@@ -0,0 +1,51 @@
package ru.pulsar.jenkins.library.steps
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.Logger
class EdtValidate implements Serializable {
private final JobConfiguration config;
private final String rootDir
EdtValidate(JobConfiguration config, String rootDir = 'src/cf') {
this.config = config
this.rootDir = rootDir
}
def run() {
IStepExecutor steps = ContextRegistry.getContext().getStepExecutor()
Logger.printLocation()
if (!config.stageFlags.edtValidate) {
steps.echo("EDT validate step is disabled")
return
}
def env = steps.env();
def projectDir = "$env.WORKSPACE/build/project"
def workspaceDir = "$env.WORKSPACE/build/workspace"
def resultFile = "$env.WORKSPACE/build/edt-validate.xml"
def configurationRoot = new File(env.WORKSPACE, rootDir).getAbsolutePath()
steps.createDir(projectDir)
steps.createDir(workspaceDir)
steps.createDir(new File(resultFile).getParent())
Logger.println("Конвертация исходников из формата конфигуратора в формат EDT")
def ringCommand = "ring edt workspace import --configuration-files '$configurationRoot' --project '$projectDir' --workspace-location '$workspaceDir'"
steps.cmd(ringCommand)
Logger.println("Выполнение валидации EDT")
env.RING_OPTS = '-Dfile.encoding=UTF-8 -Dosgi.nl=ru'
ringCommand = "ring edt workspace validate --workspace-location '$workspaceDir' --file '$resultFile' --project '$projectDir'"
steps.cmd(ringCommand)
}
}

3
vars/createDir.groovy Normal file
View File

@@ -0,0 +1,3 @@
def call(String path) {
dir(path) { echo '' }
}

10
vars/edtValidate.groovy Normal file
View File

@@ -0,0 +1,10 @@
import ru.pulsar.jenkins.library.configuration.JobConfiguration
import ru.pulsar.jenkins.library.ioc.ContextRegistry
import ru.pulsar.jenkins.library.steps.EdtValidate
def call(JobConfiguration config, String rootDir = 'src/cf') {
ContextRegistry.registerDefaultContext(this)
def edtValidate = new EdtValidate(config, rootDir)
edtValidate.run()
}

View File

@@ -67,6 +67,15 @@ void call() {
stage('Проверка качества') { stage('Проверка качества') {
parallel { parallel {
stage('EDT контроль') {
agent {
label 'edt'
}
steps {
edtValidate config
}
}
stage('Синтаксический контроль') { stage('Синтаксический контроль') {
steps { steps {
syntaxCheck config syntaxCheck config

View File

@@ -21,7 +21,7 @@ def call(JobConfiguration config) {
unzipInfobase() unzipInfobase()
def outPath = new File(options.pathToJUnitReport).getParent() def outPath = new File(options.pathToJUnitReport).getParent()
dir(outPath) { echo '' } createDir(outPath)
String command = "oscript_modules/bin/vrunner syntax-check --ibconnection \"/F./build/ib\"" String command = "oscript_modules/bin/vrunner syntax-check --ibconnection \"/F./build/ib\""