aboutsummaryrefslogtreecommitdiff
path: root/Jenkinsfile
diff options
context:
space:
mode:
authorstuppie2026-09-07 11:47:43 -0600
committerstuppie2026-09-07 11:47:43 -0600
commit092960233652cce1f4dc7841856034a6635e9cd9 (patch)
tree46e5fcd4d1e1b7ed0b987980c6c67ffa6e6b45c7 /Jenkinsfile
parent80fd8aab4c7271ddb619b0de18741d7ac77b490b (diff)
parent242579a44855873d5e054e375440e9d3492cd682 (diff)
downloadgeneralresearch-092960233652cce1f4dc7841856034a6635e9cd9.tar.gz
generalresearch-092960233652cce1f4dc7841856034a6635e9cd9.zip
Merge branch 'master' into dev-greg
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile237
1 files changed, 40 insertions, 197 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index e829ba9..a646d22 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -12,243 +12,86 @@ pipeline {
environment {
VENV = "${env.WORKSPACE}/generalresearch-venv"
- SPECTRUM_CARER_VENV = "${env.WORKSPACE}/thl-spectrum-carer-venv"
- GRLIQ_CARER_VENV = "${env.WORKSPACE}/grliq-carer-venv"
- GR_CARER_VENV = "${env.WORKSPACE}/gr-carer-venv"
-
- INCITE_MOUNT_DIR = '/mnt/thl-incite'
- TMP_DIR = "${env.WORKSPACE}/tmp"
}
stages {
- stage('python versions') {
+
+ stage('Checkout') {
+ steps {
+ checkout scmGit(
+ branches: [[name: "*/${env.BRANCH_NAME}"]],
+ extensions: [ cloneOption(shallow: true) ],
+ userRemoteConfigs: [
+ [credentialsId: 'abdeb570-b708-44f3-b857-8a6b06ed9822',
+ url: 'ssh://code.g-r-l.com:6611/generalresearch']
+ ],
+ )
+ stash name: 'source', useDefaultExcludes: false
+ }
+ }
+
+ stage('Python Versions') {
matrix {
axes {
axis {
- name 'PYTHON_VERSION'
- values 'python3.14' 'python3.13', 'python3.12', 'python3.11', 'python3.10'
+ name 'VER'
+ values 'python3.14', 'python3.13', 'python3.12'
}
}
stages {
- stage('Setup DB') {
- script {
- env.REDIS_DB = new Random().nextInt(1024).toString()
- env.REDIS = "${env.REDIS}:6379/${env.REDIS_DB}"
- env.THL_REDIS = "${env.THL_REDIS}:6379/${env.REDIS_DB}"
- echo "Using THL Redis: ${env.REDIS}"
- if (sh(script: "redis-cli -u ${env.REDIS} SET jenkins_lock 1 NX EX 3600", returnStdout: true).trim() != 'OK')
- error('Redis already locked... aborting.')
- }
- script {
- env.GR_REDIS_DB = new Random().nextInt(1024).toString()
- env.GR_REDIS = "redis://${env.REDIS}:6379/${env.GR_REDIS_DB}"
- echo "Using GR Redis: ${env.GR_REDIS}"
- if (sh(script: "redis-cli -u ${env.GR_REDIS} SET jenkins_lock 1 NX EX 3600", returnStdout: true).trim() != 'OK')
- error('Redis already locked... aborting.')
- }
- }
- }
-
- stage('Setup Git') {
+ stage('Setup') {
steps {
- cleanWs()
-
- dir('tmp') {
- sh 'pwd -P'
- }
-
- dir("generalresearch:$PYTHON_VERSION/") {
- checkout scmGit(
- branches: [[name: env.BRANCH_NAME]],
- extensions: [ cloneOption(shallow: true) ],
- userRemoteConfigs: [
- [credentialsId: 'abdeb570-b708-44f3-b857-8a6b06ed9822',
- url: 'ssh://code.g-r-l.com:6611/generalresearch']
- ],
- )
- }
-
- dir("thl-spectrum:$PYTHON_VERSION/") {
- checkout scmGit(
- branches: [[name: env.BRANCH_NAME]],
- extensions: [ cloneOption(shallow: true) ],
- userRemoteConfigs: [
- [credentialsId: 'abdeb570-b708-44f3-b857-8a6b06ed9822',
- url: 'ssh://code.g-r-l.com:6611/thl-marketplaces/thl-spectrum']
- ],
- )
- }
-
- dir("grliq:$PYTHON_VERSION/") {
- checkout scmGit(
- branches: [[name: env.BRANCH_NAME]],
- extensions: [ cloneOption(shallow: true) ],
- userRemoteConfigs: [
- [credentialsId: 'abdeb570-b708-44f3-b857-8a6b06ed9822',
- url: 'ssh://code.g-r-l.com:6611/grl-iq']
- ],
- )
- }
-
- dir("gr:$PYTHON_VERSION/") {
- checkout scmGit(
- branches: [[name: env.BRANCH_NAME]],
- extensions: [ cloneOption(shallow: true) ],
- userRemoteConfigs: [
- [credentialsId: 'abdeb570-b708-44f3-b857-8a6b06ed9822',
- url: 'ssh://code.g-r-l.com:6611/general-research/gr-carer']
- ],
- )
- }
- }
- }
-
- stage('Env & Migration') {
- steps {
- dir("generalresearch:$PYTHON_VERSION/") {
- sh "/usr/local/bin/$PYTHON_VERSION -m venv $VENV-$PYTHON_VERSION"
- sh "$VENV-$PYTHON_VERSION/bin/pip install -U setuptools wheel pip"
- sh "$VENV-$PYTHON_VERSION/bin/pip install -r requirements.txt"
- sh "$VENV-$PYTHON_VERSION/bin/pip install '.[django]'"
- sh """
- export DB_NAME=${DB_NAME}
- export DB_USER=${env.DB_USER}
- export DB_PASSWORD=${env.DB_PASSWORD}
- export DB_HOST=${env.DB_POSTGRESQL_HOST}
- $VENV-$PYTHON_VERSION/bin/$PYTHON_VERSION -m generalresearch.thl_django.app.manage migrate
- """
- }
-
- dir("thl-spectrum:$PYTHON_VERSION/") {
- dir('carer') {
- sh "/usr/local/bin/$PYTHON_VERSION -m venv $SPECTRUM_CARER_VENV-$PYTHON_VERSION"
- sh "$SPECTRUM_CARER_VENV-$PYTHON_VERSION/bin/pip install -U setuptools wheel pip"
- sh "$SPECTRUM_CARER_VENV-$PYTHON_VERSION/bin/pip install -r requirements.txt"
-
- sh """
- export DB_NAME=${SPECTRUM_DB_NAME}
- $SPECTRUM_CARER_VENV-$PYTHON_VERSION/bin/$PYTHON_VERSION manage.py migrate --settings=carer.settings.unittest
- """
+ dir("generalresearch-${VER}") {
+ deleteDir()
+ unstash 'source'
+
+ withCredentials([file(
+ credentialsId: '971e1f48-09ce-4446-9155-a52c1adb6249',
+ variable: 'ENV_TEST_FILE')]) {
+ sh 'cp $ENV_TEST_FILE .env.test'
}
- }
-
- dir("grliq:$PYTHON_VERSION/") {
- dir('carer') {
- sh "/usr/local/bin/$PYTHON_VERSION -m venv $GRLIQ_CARER_VENV-$PYTHON_VERSION"
- sh "$GRLIQ_CARER_VENV-$PYTHON_VERSION/bin/pip install -U setuptools wheel pip"
- sh "$GRLIQ_CARER_VENV-$PYTHON_VERSION/bin/pip install -r requirements.txt"
-
- sh """
- export DB_NAME=${GRLIQ_DB_NAME}
- $GRLIQ_CARER_VENV-$PYTHON_VERSION/bin/$PYTHON_VERSION manage.py migrate --settings=carer.settings.unittest
- """
- }
- }
-
- dir("gr:$PYTHON_VERSION/") {
- sh "/usr/local/bin/$PYTHON_VERSION -m venv $GR_CARER_VENV-$PYTHON_VERSION"
- sh "$GR_CARER_VENV-$PYTHON_VERSION/bin/pip install -U setuptools wheel pip"
- sh "$GR_CARER_VENV-$PYTHON_VERSION/bin/pip install -r requirements.txt"
-
- sh """
- export DB_NAME=${GR_DB_NAME}
- $GR_CARER_VENV-$PYTHON_VERSION/bin/$PYTHON_VERSION manage.py migrate --settings=gr.settings.unittest
- """
+ sh "/usr/local/bin/${VER} -m venv ${VENV}-${VER}"
+ sh "${VENV}-${VER}/bin/pip install -U setuptools wheel pip"
+ sh "${VENV}-${VER}/bin/pip install '.'"
+ sh "${VENV}-${VER}/bin/pip install '.[django,dask]'"
}
}
}
stage('base') {
- when {
- expression { return true }
- }
steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/sql_helper.py"
+ dir("generalresearch-${VER}") {
+ sh "${VENV}-${VER}/bin/pytest tests/test_postgres.py -vs"
}
}
}
stage('models') {
- when {
- expression { return true }
- }
steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/models"
+ dir("generalresearch-${VER}") {
+ sh "${VENV}-${VER}/bin/pytest tests/models/gr/test_base.py -vs"
}
}
}
stage('managers') {
steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/managers"
- }
- }
- }
-
- stage('wall_status_codes') {
- steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/wall_status_codes"
- }
- }
- }
-
- stage('wxet') {
- steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/wxet"
- }
- }
- }
-
- stage('grliq') {
- steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/grliq"
+ dir("generalresearch-${VER}") {
+ sh "${VENV}-${VER}/bin/pytest tests/managers/gr/ -vs"
}
}
}
- stage('incite') {
- steps {
- dir("generalresearch:$PYTHON_VERSION") {
- sh "$VENV-$PYTHON_VERSION/bin/pytest -v tests/incite"
- }
- }
- }
}
}
}
}
+
post {
always {
echo 'One way or another, I have finished'
- deleteDir() /* clean up our workspace */
- sh """
- mariadb -h ${env.DB_MARIA_HOST} -u ${env.DB_USER} -p${env.DB_PASSWORD} --ssl=0 -e 'DROP DATABASE `${env.SPECTRUM_DB_NAME}`;'
- """
- sh """
- PGPASSWORD=${env.DB_PASSWORD} psql -h ${env.DB_POSTGRESQL_HOST} -U ${env.DB_USER} -d postgres <<EOF
- DROP DATABASE "${env.DB_NAME}";
- EOF
- """
- sh """
- PGPASSWORD=${env.DB_PASSWORD} psql -h ${env.DB_POSTGRESQL_HOST} -U ${env.DB_USER} -d postgres <<EOF
- DROP DATABASE "${env.GRLIQ_DB_NAME}";
- EOF
- """
- sh """
- PGPASSWORD=${env.DB_PASSWORD} psql -h ${env.DB_POSTGRESQL_HOST} -U ${env.DB_USER} -d postgres <<EOF
- DROP DATABASE "${env.GR_DB_NAME}";
- EOF
- """
-
- sh "redis-cli -u ${env.THL_REDIS} FLUSHDB"
- sh "redis-cli -u ${env.GR_REDIS} FLUSHDB"
+ deleteDir()
}
}
-}
+} \ No newline at end of file