-
Notifications
You must be signed in to change notification settings - Fork 2
/
Jenkinsfile
119 lines (109 loc) · 4.17 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
pipeline {
agent {
docker {
reuseNode false
image 'caufieldjh/ubuntu20-python-3-9-14-dev:2'
}
}
triggers{
cron('0 0 * * 6')
}
environment {
BUILDSTARTDATE = sh(script: "echo `date +%Y%m%d`", returnStdout: true).trim()
S3PROJECTDIR = 'kg-obo' // no trailing slash
// Distribution ID for the AWS CloudFront for this bucket
// used solely for invalidations
AWS_CLOUDFRONT_DISTRIBUTION_ID = 'EUVSWXZQBXCFP'
// Some imports use an outdated scikit-learn alias.
// This makes that usage OK for pip.
SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL='True'
}
options {
timestamps()
}
stages {
// Very first: pause for a minute to give a chance to
// cancel and clean the workspace before use.
stage('Ready and clean') {
steps {
// Give us a minute to cancel if we want.
sleep time: 30, unit: 'SECONDS'
}
}
stage('Initialize') {
steps {
// print some info
dir('./gitrepo') {
sh 'env > env.txt'
sh 'echo $BRANCH_NAME > branch.txt'
sh 'echo "$BRANCH_NAME"'
sh 'cat env.txt'
sh 'cat branch.txt'
sh "echo $BUILDSTARTDATE > dow.txt"
sh "echo $BUILDSTARTDATE"
sh "python3.9 --version"
sh "id"
sh "whoami" // this should be jenkinsuser
// if the above fails, then the docker host didn't start the docker
// container as a user that this image knows about. This will
// likely cause lots of problems (like trying to write to $HOME
// directory that doesn't exist, etc), so we should fail here and
// have the user fix this
}
}
}
stage('Build kg-obo') {
steps {
dir('./gitrepo') {
git(
url: 'https://github.com/Knowledge-Graph-Hub/kg-obo',
branch: env.BRANCH_NAME
)
sh '/usr/bin/python3.9 -m venv venv'
sh '. venv/bin/activate'
sh './venv/bin/pip install pathlib' // fix for build config issues with pathlib
sh './venv/bin/pip install .'
}
}
}
stage('Transform') {
steps {
dir('./gitrepo') {
withCredentials([
file(credentialsId: 's3cmd_kg_hub_push_configuration', variable: 'S3CMD_CFG'),
file(credentialsId: 'aws_kg_hub_push_json', variable: 'AWS_JSON'),
string(credentialsId: 'aws_kg_hub_access_key', variable: 'AWS_ACCESS_KEY_ID'),
string(credentialsId: 'aws_kg_hub_secret_key', variable: 'AWS_SECRET_ACCESS_KEY')]) {
script {
if (env.BRANCH_NAME != 'main') {
echo "Transforming with --s3_test since we aren't on main/master branch"
sh '. venv/bin/activate && env && python3.9 run.py --s3_test --bucket fake_bucket --no_dl_progress'
} else {
sh '. venv/bin/activate && env && python3.9 run.py --bucket kg-hub-public-data --no_dl_progress --force_index_refresh'
}
}
}
}
}
}
}
post {
always {
echo 'In always'
echo 'Cleaning workspace...'
cleanWs()
}
success {
echo 'I succeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
changed {
echo 'Things were different before...'
}
}
}