From 4061c3d5a0dbcd8857c5c1d06fa616a0c46858e2 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Fri, 3 Jan 2025 19:26:21 +0000 Subject: [PATCH] Added Jenkinsfile --- Jenkinsfile | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..da7828c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,45 @@ +pipeline { + agent { + kubernetes { + cloud 'rsys-devel' + defaultContainer 'homebrew' + inheritFrom 'homebrew' + } + } + stages { + stage("install") { + steps { + sh 'brew install python@3.11 sphinx-doc' + sh 'python3.11 -m pip install -r requirements.txt' + } + } + stage("unit tests") { + steps { + sh returnStatus: true, script: "python3.11 -m pytest --junitxml=test_results.xml" + xunit checksName: '', tools: [JUnit(excludesPattern: '', pattern: 'test_results.xml', stopProcessingIfError: true)] + } + } + stage("test installation") { + steps { + sh "python3.11 -m pip install dist/*.whl --force-reinstall" + sh "mlstmyfasta -h" + } + } + stage("archive") { + steps { + archiveArtifacts artifacts: 'dist/*.tar.gz, dist/*.whl', fingerprint: true, followSymlinks: false, onlyIfSuccessful: true + } + } + stage("publish") { + environment { + CREDS = credentials('git.reslate.systems/ydeng') + } + when { + branch '**/main' + } + steps { + sh returnStatus: true, script: 'python3.11 -m twine upload --repository-url https://git.reslate.systems/api/packages/${CREDS_USR}/pypi -u ${CREDS_USR} -p ${CREDS_PSW} --non-interactive --disable-progress-bar --verbose dist/*' + } + } + } +} \ No newline at end of file