aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Rendina <rendinam@users.noreply.github.com>2019-01-11 17:15:31 -0500
committerGitHub <noreply@github.com>2019-01-11 17:15:31 -0500
commit4fdc5b786172dc165e3da052c9ab120d601a80a8 (patch)
treee6590e19b719d840c69fd054842713633151a6a3
parent3dd293c4767ad012949c5fc5056cf5f9101dd840 (diff)
downloadjscu_refactor-4fdc5b786172dc165e3da052c9ab120d601a80a8.tar.gz
Preliminaries for functionality testing (#29)1.3.1
* Minor adjustments to allow folder-level library loading in Jenkins * Switched to default master node label * Added first pass at a functionality-testing Jenkinsfile and pytest suite. * Removed redundant `@Grab` of `github-api` library.
-rw-r--r--Jenkinsfile.test27
-rw-r--r--src/BuildConfig.groovy1
-rw-r--r--src/DataConfig.groovy1
-rw-r--r--src/JobConfig.groovy1
-rw-r--r--test_alwaysfail.py2
-rw-r--r--vars/utils.groovy8
6 files changed, 32 insertions, 8 deletions
diff --git a/Jenkinsfile.test b/Jenkinsfile.test
new file mode 100644
index 0000000..b8d40b1
--- /dev/null
+++ b/Jenkinsfile.test
@@ -0,0 +1,27 @@
+if (utils.scm_checkout(['skip_disable':true])) return
+
+def PYTEST = "pytest \
+ -r s \
+ --basetemp=test_outputs \
+ --junit-xml=results.xml"
+
+jobconfig = new JobConfig()
+jobconfig.post_test_summary = true
+
+
+bc0 = new BuildConfig()
+bc0.nodetype = 'master'
+bc0.name = 'First'
+bc0.conda_packages = ['python=3.6',
+ 'pytest=3.8.2']
+bc0.build_cmds = ["ls -al",
+ "date"]
+bc0.test_cmds = ["printenv | sort",
+ "${PYTEST}"]
+
+bc1 = utils.copy(bc0)
+bc1.name = 'Second'
+bc1.env_vars = ['VAR_THREE=3',
+ 'VAR_FOUR=4']
+
+utils.run([bc0, bc1])
diff --git a/src/BuildConfig.groovy b/src/BuildConfig.groovy
index fd41ef4..e42ec71 100644
--- a/src/BuildConfig.groovy
+++ b/src/BuildConfig.groovy
@@ -1,5 +1,4 @@
// src/BuildConfig.groovy
-package BuildConfig;
class BuildConfig implements Serializable {
def nodetype = ""
diff --git a/src/DataConfig.groovy b/src/DataConfig.groovy
index 1107d17..353cead 100644
--- a/src/DataConfig.groovy
+++ b/src/DataConfig.groovy
@@ -1,4 +1,3 @@
-package DataConfig;
import groovy.json.JsonOutput
import org.apache.commons.io.FileUtils
diff --git a/src/JobConfig.groovy b/src/JobConfig.groovy
index 228a826..6a44ed2 100644
--- a/src/JobConfig.groovy
+++ b/src/JobConfig.groovy
@@ -1,5 +1,4 @@
// src/JobConfig.groovy
-//package JobConfig;
class JobConfig implements Serializable {
diff --git a/test_alwaysfail.py b/test_alwaysfail.py
new file mode 100644
index 0000000..c3c2558
--- /dev/null
+++ b/test_alwaysfail.py
@@ -0,0 +1,2 @@
+def test_alwaysfail():
+ assert 1==2
diff --git a/vars/utils.groovy b/vars/utils.groovy
index ef651dc..a159145 100644
--- a/vars/utils.groovy
+++ b/vars/utils.groovy
@@ -1,12 +1,10 @@
// Jenkinsfile support utilities
-import BuildConfig.BuildConfig
-import JobConfig
+import BuildConfig
import groovy.io.FileType
import groovy.json.JsonOutput
import org.apache.commons.lang3.SerializationUtils
import org.apache.commons.io.FilenameUtils
-@Grab(group='org.kohsuke', module='github-api', version='1.93')
import org.kohsuke.github.GitHub
@@ -43,7 +41,7 @@ def postGithubIssue(reponame, username, password, subject, message) {
// need to abort from Jenkinsfile.
def scm_checkout(args = ['skip_disable':false]) {
skip_job = 0
- node("on-master") {
+ node('master') {
stage("Setup") {
checkout(scm)
@@ -356,7 +354,7 @@ def stageArtifactory(config) {
// @param jobconfig JobConfig object holding paramters that influence the
// behavior of the entire Jenkins job.
def stagePostBuild(jobconfig) {
- node("on-master") {
+ node('master') {
stage("Post-build") {
if (jobconfig.post_test_summary) {
testSummaryNotify(jobconfig.all_posts_in_same_issue)