Skip to content
Snippets Groups Projects
Commit 4d3411ac authored by Lukas Köhler's avatar Lukas Köhler
Browse files

init config commit

parent f3df7a6f
No related branches found
No related tags found
No related merge requests found
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Python" name="Python">
<configuration sdkName="" />
</facet>
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.6 (venv)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (venv)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Config.iml" filepath="$PROJECT_DIR$/.idea/Config.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
# Config
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>jenkins.security.csrf.CSRFAdministrativeMonitor</string>
</disabledAdministrativeMonitors>
<version>2.121.2</version>
<installStateName>RESTART</installStateName>
<numExecutors>5</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
<permission>hudson.model.Hudson.Administer:{USERNAME}</permission>
<permission>hudson.model.Hudson.Administer:api</permission>
<permission>hudson.model.Hudson.Read:authenticated</permission>
</authorizationStrategy>
<securityRealm class="org.jenkinsci.plugins.oic.OicSecurityRealm" plugin="oic-auth@1.4">
<clientId>jenkins</clientId>
<clientSecret>{SECRET}</clientSecret>
<tokenServerUrl>{TOKEN_URL}</tokenServerUrl>
<authorizationServerUrl>{AUTH_URL}</authorizationServerUrl>
<userInfoServerUrl>{USERINFO_URL}</userInfoServerUrl>
<userNameField>preferred_username</userNameField>
<fullNameFieldName>fullName</fullNameFieldName>
<emailFieldName>email</emailFieldName>
<scopes>openid email</scopes>
<disableSslVerification>true</disableSslVerification>
<logoutFromOpenidProvider>true</logoutFromOpenidProvider>
<endSessionUrl>{LOGOUT_URL}</endSessionUrl>
<postLogoutRedirectUrl>{REDIRECT_URL}</postLogoutRedirectUrl>
<escapeHatchEnabled>false</escapeHatchEnabled>
<escapeHatchSecret>{AQAAABAAAAAQNBX0MHf+isIai4/5rlJTx3BKlSMH8wpGhqrqiubN2D4=}</escapeHatchSecret>
</securityRealm>
<disableRememberMe>false</disableRememberMe>
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>${ITEM_ROOTDIR}/workspace</workspaceDir>
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
<markupFormatter class="hudson.markup.EscapedMarkupFormatter"/>
<jdks/>
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
<clouds>
<org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud plugin="kubernetes@1.12.2">
<name>openshift</name>
<templates>
<org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
<inheritFrom></inheritFrom>
<name>maven</name>
<privileged>false</privileged>
<capOnlyOnAlivePods>false</capOnlyOnAlivePods>
<alwaysPullImage>false</alwaysPullImage>
<instanceCap>2147483647</instanceCap>
<slaveConnectTimeout>0</slaveConnectTimeout>
<idleMinutes>0</idleMinutes>
<activeDeadlineSeconds>0</activeDeadlineSeconds>
<label>maven</label>
<serviceAccount>jenkins</serviceAccount>
<nodeSelector></nodeSelector>
<customWorkspaceVolumeEnabled>false</customWorkspaceVolumeEnabled>
<volumes/>
<containers>
<org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
<name>jnlp</name>
<image>docker.io/openshift/jenkins-agent-maven-35-centos7:v3.11</image>
<privileged>false</privileged>
<alwaysPullImage>true</alwaysPullImage>
<workingDir>/tmp</workingDir>
<command></command>
<args>${computer.jnlpmac} ${computer.name}</args>
<ttyEnabled>false</ttyEnabled>
<resourceRequestCpu></resourceRequestCpu>
<resourceRequestMemory></resourceRequestMemory>
<resourceLimitCpu></resourceLimitCpu>
<resourceLimitMemory></resourceLimitMemory>
<envVars/>
</org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
</containers>
<envVars/>
<annotations/>
<imagePullSecrets/>
</org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
<org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
<inheritFrom></inheritFrom>
<name>nodejs</name>
<privileged>false</privileged>
<capOnlyOnAlivePods>false</capOnlyOnAlivePods>
<alwaysPullImage>false</alwaysPullImage>
<instanceCap>2147483647</instanceCap>
<slaveConnectTimeout>0</slaveConnectTimeout>
<idleMinutes>0</idleMinutes>
<activeDeadlineSeconds>0</activeDeadlineSeconds>
<label>nodejs</label>
<serviceAccount>jenkins</serviceAccount>
<nodeSelector></nodeSelector>
<customWorkspaceVolumeEnabled>false</customWorkspaceVolumeEnabled>
<volumes/>
<containers>
<org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
<name>jnlp</name>
<image>docker.io/openshift/jenkins-agent-nodejs-8-centos7:v3.11</image>
<privileged>false</privileged>
<alwaysPullImage>true</alwaysPullImage>
<workingDir>/tmp</workingDir>
<command></command>
<args>${computer.jnlpmac} ${computer.name}</args>
<ttyEnabled>false</ttyEnabled>
<resourceRequestCpu></resourceRequestCpu>
<resourceRequestMemory></resourceRequestMemory>
<resourceLimitCpu></resourceLimitCpu>
<resourceLimitMemory></resourceLimitMemory>
<envVars/>
</org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
</containers>
<envVars/>
<annotations/>
<imagePullSecrets/>
</org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
</templates>
<serverUrl>https://172.30.0.1:443</serverUrl>
<serverCertificate>-----BEGIN CERTIFICATE-----
MIIC6jCCAdKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu
c2hpZnQtc2lnbmVyQDE1MzIyODU2NTUwHhcNMTgwNzIyMTg1NDE0WhcNMjMwNzIx
MTg1NDE1WjAmMSQwIgYDVQQDDBtvcGVuc2hpZnQtc2lnbmVyQDE1MzIyODU2NTUw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpkkLXsvxCbu6SYGFpKMv/
hYxwbY5Eai9pZf+2iL4TEtqF+hrwCgOB4oXZ+0LLcaszbbEqrKRSAbkJoeXFafii
7IUAH02zOC7B9j3d6gTiNMJ/3Q0AjuP37bOXvjDAKaspzB2YYv3Tn/R/0Tm/qprt
bxBxbbBBcvwkYpKbMOqtCRqv+y1WZCBVIBKRrJ89JZLn/NO3j49bHczuDPcG2qM+
2cfTfmpdarwsoXN5OKBOGbFuQ/IaNxBqXzJCMCRHYk7r+Ug3Z1Z2WxVLjrhyvUjX
Whk0bISWsBAQkoJbT67BeUOZ7JzgsGsHS8l8fZ948fyLyD3WpJNf0vRyz7gz5XRf
AgMBAAGjIzAhMA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQAb7Rm6tvkfT1biT4uiaEzy43M/p3HEqyHc6B0t2kvOsgbD
FjEc1lL+kbEZiWForTV19hp8VDSa3RH+9Z00+Zi8AXyRj6smdsA1TSlfn8hR55q2
gy0JvY+z4yWN1nbOj2uj1ZVv15NCXl6UiEbV4cDq/7a3AKOM1FeOlzFQLfDPQmqA
Or+FzCmb9qcC/4g7WyDSm8XUJljRtKFVFZdnSW1LIS18kJ+sWUqjYmJ0OP9b7q5G
9yu4OhNe7pilJspYV+3V6wHvPblmxu3zdwTk/ELqI4dN/Llz0kRT7Ez258nAd4zo
pO077lGdsifbJTjmMbrkOzW2o8knqjhV1ERrWT+4
-----END CERTIFICATE-----</serverCertificate>
<skipTlsVerify>false</skipTlsVerify>
<addMasterProxyEnvVars>true</addMasterProxyEnvVars>
<capOnlyOnAlivePods>false</capOnlyOnAlivePods>
<namespace>test1</namespace>
<jenkinsUrl>http://172.30.26.218:80</jenkinsUrl>
<jenkinsTunnel>172.30.143.141:50000</jenkinsTunnel>
<credentialsId>1a12dfa4-7fc5-47a7-aa17-cc56572a41c7</credentialsId>
<containerCap>100</containerCap>
<retentionTimeout>5</retentionTimeout>
<connectTimeout>0</connectTimeout>
<readTimeout>0</readTimeout>
<usageRestricted>false</usageRestricted>
<maxRequestsPerHost>32</maxRequestsPerHost>
<podRetention class="org.csanchez.jenkins.plugins.kubernetes.pod.retention.Never"/>
</org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud>
</clouds>
<quietPeriod>1</quietPeriod>
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
<views>
<hudson.model.AllView>
<owner class="hudson" reference="../../.."/>
<name>all</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties/>
</hudson.model.AllView>
</views>
<primaryView>all</primaryView>
<slaveAgentPort>50000</slaveAgentPort>
<disabledAgentProtocols>
<string>JNLP-connect</string>
<string>JNLP2-connect</string>
</disabledAgentProtocols>
<label>master</label>
<nodeProperties/>
<globalNodeProperties/>
<noUsageStatistics>true</noUsageStatistics>
</hudson>
\ No newline at end of file
{
"clientId": "jenkins",
"rootUrl": "https://{DOMAIN}/",
"adminUrl": "https://{DOMAIN}/",
"baseUrl": "https://{DOMAIN}/",
"surrogateAuthRequired": false,
"enabled": true,
"clientAuthenticatorType": "client-secret",
"redirectUris": [
"https://{DOMAIN}/*"
],
"webOrigins": [
"https://{DOMAIN}"
],
"notBefore": 0,
"bearerOnly": false,
"consentRequired": false,
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"directAccessGrantsEnabled": false,
"serviceAccountsEnabled": false,
"publicClient": false,
"frontchannelLogout": false,
"protocol": "openid-connect",
"attributes": {
"saml.assertion.signature": "false",
"saml.multivalued.roles": "false",
"saml.force.post.binding": "false",
"saml.encrypt": "false",
"saml_force_name_id_format": "false",
"saml.client.signature": "false",
"saml.authnstatement": "false",
"saml.server.signature": "false",
"saml.server.signature.keyinfo.ext": "false",
"saml.onetimeuse.condition": "false",
"exclude.session.state.from.auth.response": "false"
},
"fullScopeAllowed": true,
"nodeReRegistrationTimeout": -1,
"protocolMappers": [
{
"name": "family name",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${familyName}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "lastName",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "family_name",
"jsonType.label": "String"
}
},
{
"name": "email",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${email}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "email",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "email",
"jsonType.label": "String"
}
},
{
"name": "role list",
"protocol": "saml",
"protocolMapper": "saml-role-list-mapper",
"consentRequired": false,
"config": {
"single": "false",
"attribute.nameformat": "Basic",
"attribute.name": "Role"
}
},
{
"name": "username",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${username}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "username",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "preferred_username",
"jsonType.label": "String"
}
},
{
"name": "given name",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${givenName}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "firstName",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "given_name",
"jsonType.label": "String"
}
},
{
"name": "full name",
"protocol": "openid-connect",
"protocolMapper": "oidc-full-name-mapper",
"consentRequired": true,
"consentText": "${fullName}",
"config": {
"id.token.claim": "true",
"access.token.claim": "true"
}
}
],
"useTemplateConfig": false,
"useTemplateScope": false,
"useTemplateMappers": false,
"access": {
"view": true,
"configure": true,
"manage": true
}
}
\ No newline at end of file
{
"clientId": "opensubmit",
"rootUrl": "https://{DOMAIN}/",
"adminUrl": "https://{DOMAIN}/",
"baseUrl": "https://{DOMAIN}/",
"surrogateAuthRequired": false,
"enabled": true,
"clientAuthenticatorType": "client-secret",
"redirectUris": [
"http://{DOMAIN}/*",
"https://{DOMAIN}/*"
],
"webOrigins": [
"https://{DOMAIN}"
],
"notBefore": 0,
"bearerOnly": false,
"consentRequired": false,
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"directAccessGrantsEnabled": false,
"serviceAccountsEnabled": false,
"publicClient": false,
"frontchannelLogout": false,
"protocol": "openid-connect",
"attributes": {
"saml.assertion.signature": "false",
"saml.force.post.binding": "false",
"saml.multivalued.roles": "false",
"saml.encrypt": "false",
"saml_force_name_id_format": "false",
"saml.client.signature": "false",
"saml.authnstatement": "false",
"saml.server.signature": "false",
"saml.server.signature.keyinfo.ext": "false",
"exclude.session.state.from.auth.response": "false",
"saml.onetimeuse.condition": "false"
},
"fullScopeAllowed": true,
"nodeReRegistrationTimeout": -1,
"protocolMappers": [
{
"name": "email",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${email}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "email",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "email",
"jsonType.label": "String"
}
},
{
"name": "role list",
"protocol": "saml",
"protocolMapper": "saml-role-list-mapper",
"consentRequired": false,
"config": {
"single": "false",
"attribute.nameformat": "Basic",
"attribute.name": "Role"
}
},
{
"name": "username",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${username}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "username",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "preferred_username",
"jsonType.label": "String"
}
},
{
"name": "family name",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${familyName}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "lastName",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "family_name",
"jsonType.label": "String"
}
},
{
"name": "given name",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": true,
"consentText": "${givenName}",
"config": {
"userinfo.token.claim": "true",
"user.attribute": "firstName",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "given_name",
"jsonType.label": "String"
}
},
{
"name": "full name",
"protocol": "openid-connect",
"protocolMapper": "oidc-full-name-mapper",
"consentRequired": true,
"consentText": "${fullName}",
"config": {
"id.token.claim": "true",
"access.token.claim": "true",
"userinfo.token.claim": "true"
}
}
],
"useTemplateConfig": false,
"useTemplateScope": false,
"useTemplateMappers": false,
"access": {
"view": true,
"configure": true,
"manage": true
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
node {
stage('Copy files') {
sh(
'''
chmod -Rf 777 ./
rm -rf *
echo $folder
cp -r $folder/* ./
rm -rf \$folder
'''
)
}
stage('Pull and compile cppunit tests') {
sh(
'''
mkdir git
'''
)
dir('git') {
git(
credentialsId: 'codegit',
url: 'https://code.fbi.h-da.de/SS18-REP-PAD2/UnitTests/Praktikum1.git',
changelog: false
)
}
sh(
'''
cp -r git/* ./
'''
)
sh(
'''
cmake ./
make
'''
)
}
stage('Run cppunit tests') {
sh('./cppunitTemplate')
xunit(
thresholds: [
skipped(failureThreshold: '0'),
failed(failureThreshold: '0')
],
tools: [CppUnit(
pattern: 'testResults.xml',
)]
)
}
}
\ No newline at end of file
<?xml version='1.1' encoding='UTF-8'?>
<flow-definition plugin="workflow-job@2.24">
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.security.AuthorizationMatrixProperty>
<inheritanceStrategy class="org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy"/>
<permission>hudson.model.Item.Read:{USERNAME}</permission>
<permission>hudson.model.Item.Workspace:{USERNAME}</permission>
</hudson.security.AuthorizationMatrixProperty>
<io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty plugin="openshift-sync@1.0.25">
<uid></uid>
<namespace></namespace>
<name></name>
<resourceVersion></resourceVersion>
</io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>folder</name>
<description></description>
<defaultValue></defaultValue>
<trim>false</trim>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="workflow-cps@2.54">
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.9.1">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>{GIT_REPO}</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions/>
</scm>
<scriptPath>{GIT_JENKINSFILE_PATH}</scriptPath>
<lightweight>true</lightweight>
</definition>
<triggers/>
<disabled>false</disabled>
</flow-definition>
\ No newline at end of file
import os
import time
from urllib import parse, request
import urllib3
from jenkins import Jenkins
from jenkins import JenkinsException
DEBUG = False
PIPELINE_CONFIG_URL = 'https://code.fbi.h-da.de/DB-Airport/Config/raw/master/pipelines/PipelineConfig.xml'
PIPELINE_REPO = 'https://code.fbi.h-da.de/DB-Airport/Config.git'
PIPELINE_BASE = 'pipelines'
JENKINSFILE_NAME = 'jenkinsfile.groovy'
JENKINS_URL = 'https://jenkins-open-submit.apps.ocp.fbi.h-da.de'
JENKINS_USERNAME = 'api'
JENKINS_SECRET = os.environ['JENKINS_API_TOKEN']
# Parameter that will be filled when debug is off
USERNAME = 'istlukoeh'
COURSE = 'PAD1'
ASSIGNMENT = 'Praktikum 1'
COURSE_AND_ASSIGNMENT = COURSE + '-' + ASSIGNMENT
JOB_NAME = COURSE + '-' + ASSIGNMENT + '-' + USERNAME
FOLDER = '/tmp/1_3wrqhvuj/'
def validate(job):
global FOLDER
my_init(job)
if not DEBUG:
for fname in os.listdir('.'):
if fname.endswith('Makefile'):
job.run_make(mandatory=True)
server = Jenkins(JENKINS_URL, JENKINS_USERNAME, JENKINS_SECRET)
create_pipeline(server)
paramFolder = FOLDER.split('/')[-1]
if paramFolder == "":
paramFolder = FOLDER.split('/')[-2]
if paramFolder == "":
paramFolder = FOLDER.split('/')[-3]
queue_number = server.build_job(JOB_NAME, {'folder': '/opensubmit/' + paramFolder})
queue_item = server.get_queue_item(queue_number)
while 'executable' not in queue_item or not queue_item['executable']:
print('Waiting for queue item . . .')
time.sleep(2)
queue_item = server.get_queue_item(queue_number)
while 'number' not in queue_item['executable'] or not queue_item['executable']['number']:
print('Waiting for queue item . . .')
time.sleep(2)
queue_item = server.get_queue_item(queue_number)
build_number = queue_item['executable']['number']
build_output = server.get_build_console_output(JOB_NAME, build_number)
while 'Finished:' not in build_output:
print('Waiting for complete pipeline output . . .')
time.sleep(2)
build_output = server.get_build_console_output(JOB_NAME, build_number)
print('Finished!')
job_url = JENKINS_URL + '/job/' + parse.quote(JOB_NAME) + '/' + str(build_number)
result = '<a href="' + job_url + '" target="_blank">Jenkins results</a>'
success = 'Finished: SUCCESS' in build_output
if success:
print('Failed!')
else:
print('Success')
print(result)
if not DEBUG:
if success:
job.send_pass_result(result)
else:
job.send_fail_result(result)
def my_init(job):
global USERNAME
global COURSE
global ASSIGNMENT
global FOLDER
global COURSE_AND_ASSIGNMENT
global JOB_NAME
if not DEBUG:
USERNAME = job.submitter_student_id
COURSE = job.course
ASSIGNMENT = job.assignment
FOLDER = job.working_dir
COURSE_AND_ASSIGNMENT = COURSE + '-' + ASSIGNMENT
JOB_NAME = COURSE + '-' + ASSIGNMENT + '-' + USERNAME
fileNameList = [name for name in os.listdir(FOLDER) if
'__pycache__' not in name and '.py' not in name and '.zip' not in name]
while len(fileNameList) == 1 and os.path.isdir(os.path.join(FOLDER, fileNameList[0])):
FOLDER = os.path.join(FOLDER, fileNameList[0])
job.working_dir = FOLDER
os.system('scp -i /ssh/key -r ' + FOLDER + ' jenkins-ssh@jenkins-ssh:/opensubmit')
os.system('chmod -R 777 ' + FOLDER)
os.environ['PYTHONHTTPSVERIFY'] = '0'
urllib3.disable_warnings()
def create_pipeline(jenkins_server):
# data = request.urlopen(
# PIPELINE_BASE_URL + parse.quote(COURSE) + '/' + parse.quote(ASSIGNMENT) + '.xml')
data = request.urlopen(PIPELINE_CONFIG_URL)
xml_file = data.read().decode("utf-8")
xml_file = xml_file.replace('{USERNAME}', USERNAME)
xml_file = xml_file.replace('{GIT_REPO}', PIPELINE_REPO)
xml_file = xml_file.replace('{GIT_JENKINSFILE_PATH}',
PIPELINE_BASE + '/' + COURSE + '/' + ASSIGNMENT + '/' + JENKINSFILE_NAME)
try:
jenkins_server.create_job(JOB_NAME, xml_file)
except JenkinsException:
print('Pipeline already exists')
if DEBUG:
validate(None)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment