aboutsummaryrefslogtreecommitdiff
path: root/JenkinsfileRT
diff options
context:
space:
mode:
authorMatt Rendina <mrendina@stsci.edu>2019-01-23 15:33:54 -0500
committerMatt Rendina <mrendina@stsci.edu>2019-02-12 16:27:59 -0500
commit68341c08eca5025fe17a8e737afea7c51ea2c050 (patch)
tree6c8821b25986fa23561c85574407ff080f089094 /JenkinsfileRT
parentd5acca400a4d5648f70a6e01815e24bf4dc5c4ad (diff)
downloaddelivery_control-68341c08eca5025fe17a8e737afea7c51ea2c050.tar.gz
env 'activation'
Stash all files from master Selective test run by platform. Start collecting pieces for metadata extraction. Modify JenkinsfileRT in place. Load individualized Jenkinsfiles for each pkg Ensure PATH gets included in env_vars list at appropriate time. Preprocess env_vars before expanding into runtime list. Build project if setup.py is present. Use pip to install projects with a setup.py and ignore their deps. Generalize PATH manipulation to handle explicit PATH defs and no such defs. Uninstall conda_packages when done with a single test suite. Better parsing of conda list info. Annotate tests with package and build config name. Remove debugging clause; cleanup
Diffstat (limited to 'JenkinsfileRT')
-rw-r--r--JenkinsfileRT58
1 files changed, 58 insertions, 0 deletions
diff --git a/JenkinsfileRT b/JenkinsfileRT
new file mode 100644
index 0000000..aac2be4
--- /dev/null
+++ b/JenkinsfileRT
@@ -0,0 +1,58 @@
+// Obtain files from source control system.
+// [skip ci] and [ci skip] have no effect here.
+ if (utils.scm_checkout(['skip_disable':true])) return
+
+// Allow modification of the job configuration, affects all relevant build configs.
+// Pass this object in the argument list to the`run()` function below to apply these settings to the job's execution.
+jobconfig = new JobConfig()
+jobconfig.post_test_summary = true
+
+// Config data to share between builds.
+CFLAGS = ''
+LDFLAGS = ''
+DEFAULT_FLAGS = "${CFLAGS} ${LDFLAGS}"
+// Some waf flags cause a prompt for input during configuration, hence the 'yes'.
+configure_cmd = "yes '' | ./waf configure --prefix=./_install ${DEFAULT_FLAGS}"
+
+// Configure artifactory ingest
+data_config = new DataConfig()
+data_config.server_id = 'bytesalad'
+data_config.root = 'tests_output'
+data_config.match_prefix = '(.*)_result' // .json is appended automatically
+
+// Run nightly tests, which include the slow ones.
+bc = new BuildConfig()
+bc.nodetype = "RHEL-6"
+bc.name = "release"
+bc.env_vars = ['PATH=./_install/bin:$PATH',
+ 'OMP_NUM_THREADS=8',
+ 'TEST_BIGDATA=https://bytesalad.stsci.edu/artifactory',
+ 'jref=/grp/hst/cdbs/jref/',
+ 'iref=/grp/hst/cdbs/iref/',
+ 'oref=/grp/hst/cdbs/oref/']
+bc.conda_channels = ['http://ssb.stsci.edu/astroconda']
+bc.conda_packages = ['python=3.6',
+ 'cfitsio',
+ 'pkg-config',
+ 'pytest',
+ 'requests',
+ 'astropy',
+ 'ci-watson']
+
+bc.build_cmds = [//"pip install git+https://github.com/spacetelescope/ci_watson.git@master",
+ "${configure_cmd} --release-with-symbols",
+ "./waf build",
+ "./waf install",
+ "calacs.e --version"]
+//bc.test_cmds = ["pytest tests --basetemp=tests_output --junitxml results.xml --bigdata --slow -v"]
+bc.test_cmds = ["pytest tests/acs/test_hrc_single.py --basetemp=tests_output --junitxml results.xml --bigdata --slow -v"]
+bc.failedUnstableThresh = 1
+bc.failedFailureThresh = 6
+
+// Upload artifacts
+bc.test_configs = [data_config]
+
+// Iterate over configurations that define the (distributed) build matrix.
+// Spawn a host of the given nodetype for each combination and run in parallel.
+// Also apply the job configuration defined in `jobconfig` above.
+ utils.run([bc, jobconfig])