diff --git a/Jenkinsfile b/Jenkinsfile index 93d2b7366..47ca9c862 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,25 +10,41 @@ - TODO: #527 Get this list automatically from python-ci.yml at runtime. */ def indicator_list = ["backfill_corrections", "changehc", "claims_hosp", "google_symptoms", "hhs_hosp", "jhu", "nchs_mortality", "quidel", "quidel_covidtest", "safegraph_patterns", "sir_complainsalot", "usafacts", "dsew_community_profile", "doctor_visits"] -def build_package = [:] +def build_package_main = [:] +def build_package_prod = [:] def deploy_staging = [:] def deploy_production = [:] pipeline { agent any stages { - stage('Build and Package') { + stage('Build and Package main') { when { branch "main"; } steps { script { indicator_list.each { indicator -> - build_package[indicator] = { - sh "jenkins/build-and-package.sh ${indicator}" + build_package_main[indicator] = { + sh "jenkins/build-and-package.sh ${indicator} main" } } - parallel build_package + parallel build_package_main + } + } + } + stage('Build and Package prod') { + when { + branch "prod"; + } + steps { + script { + indicator_list.each { indicator -> + build_package_prod[indicator] = { + sh "jenkins/build-and-package.sh ${indicator} prod" + } + } + parallel build_package_prod } } } diff --git a/ansible/ansible-deploy-staging.yaml b/ansible/ansible-deploy-staging.yaml index 3056d79f2..0196dc7d1 100644 --- a/ansible/ansible-deploy-staging.yaml +++ b/ansible/ansible-deploy-staging.yaml @@ -6,7 +6,7 @@ tasks: - name: Copy and unarchive the package into the indicators runtime host directory. unarchive: - src: "{{ jenkins_artifact_dir }}/{{ package }}" + src: "{{ jenkins_artifact_dir }}/{{ package_staging }}" dest: "{{ indicators_runtime_dir }}" owner: "{{ runtime_user }}" group: "{{ runtime_user }}" diff --git a/ansible/ansible-deploy.yaml b/ansible/ansible-deploy.yaml index f35aa40f8..eff65c892 100644 --- a/ansible/ansible-deploy.yaml +++ b/ansible/ansible-deploy.yaml @@ -6,7 +6,7 @@ tasks: - name: Copy and unarchive the package into the indicators runtime host directory. unarchive: - src: "{{ jenkins_artifact_dir }}/{{ package }}" + src: "{{ jenkins_artifact_dir }}/{{ package_production }}" dest: "{{ indicators_runtime_dir }}" owner: "{{ runtime_user }}" group: "{{ runtime_user }}" diff --git a/ansible/vars.yaml b/ansible/vars.yaml index 6fd93a028..125ed857b 100644 --- a/ansible/vars.yaml +++ b/ansible/vars.yaml @@ -6,7 +6,8 @@ runtime_user: "indicators" jenkins_user: "jenkins" jenkins_artifact_dir: "/var/lib/jenkins/artifacts" indicators_runtime_dir: "/home/{{ runtime_user }}/runtime" -package: "{{ indicator }}.tar.gz" # {{ indicator }} is passed in from the Jenkins shell script wrapper. +package_staging: "main_{{ indicator }}.tar.gz" # {{ indicator }} is passed in from the Jenkins shell script wrapper. +package_production: "prod_{{ indicator }}.tar.gz" # {{ indicator }} is passed in from the Jenkins shell script wrapper. python_version: "3.8.2" pyenv_python_path: "/home/{{ runtime_user }}/.pyenv/versions/{{ python_version }}/bin/python" diff --git a/jenkins/build-and-package.sh b/jenkins/build-and-package.sh index 734044a35..c828b7000 100755 --- a/jenkins/build-and-package.sh +++ b/jenkins/build-and-package.sh @@ -8,6 +8,7 @@ source ~/.bash_profile # Vars local_indicator=$1 +branch=$2 # # Build @@ -30,4 +31,4 @@ pip install ../_delphi_utils_python/. --retries 10 --timeout 20 cd "${WORKSPACE}" || exit # Create .tar.gz for deployment -tar -czvf "${JENKINS_HOME}/artifacts/${local_indicator}.tar.gz" "${local_indicator}" +tar -czvf "${JENKINS_HOME}/artifacts/${branch}_${local_indicator}.tar.gz" "${local_indicator}" \ No newline at end of file