5050 description : terraform-kayobe-multinode version
5151 type : string
5252 default : main
53+ terraform_kayobe_multinode_previous_version :
54+ description : terraform-kayobe-multinode previous version
55+ type : string
5356 upgrade :
5457 # Supported values: 'none', 'minor', 'major'
5558 description : Whether to perform an upgrade
@@ -95,12 +98,18 @@ jobs:
9598 KAYOBE_ENVIRONMENT : ci-multinode
9699 KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD_CI_MULTINODE }}
97100 steps :
98- - name : Fail if previous version is not defined
101+ - name : Fail if stackhpc-kayobe-config previous version is not defined
99102 run : |
100103 echo "StackHPC Kayobe Configuration previous version must be defined for upgrades"
101104 exit 1
102105 if : ${{ (inputs.upgrade != 'none') && inputs.stackhpc_kayobe_config_previous_version == '' }}
103106
107+ - name : Fail if terraform-kayobe-multinode previous version is not defined
108+ run : |
109+ echo "StackHPC Kayobe Configuration previous version must be defined for upgrades"
110+ exit 1
111+ if : ${{ (inputs.upgrade == 'major') && inputs.terraform_kayobe_multinode_previous_version == '' }}
112+
104113 - name : Fail if no SSH key is provided for break_on
105114 run : |
106115 echo "break_on is set to ${{ inputs.break_on }} but an SSH public key has not been provided"
@@ -119,11 +128,11 @@ jobs:
119128 repository : stackhpc/stackhpc-kayobe-config
120129 ref : ${{ (inputs.upgrade != 'none') && inputs.stackhpc_kayobe_config_previous_version || inputs.stackhpc_kayobe_config_version }}
121130
122- - name : Checkout terraform-kayobe-multinode
131+ - name : Checkout ${{ (inputs.upgrade == 'major') && 'previous release' || 'current' }} terraform-kayobe-multinode
123132 uses : actions/checkout@v4
124133 with :
125134 repository : stackhpc/terraform-kayobe-multinode
126- ref : ${{ inputs.terraform_kayobe_multinode_version }}
135+ ref : ${{ (inputs.upgrade == 'major') && inputs.terraform_kayobe_multinode_previous_version || inputs.terraform_kayobe_multinode_version }}
127136 path : terraform-kayobe-multinode
128137
129138 - name : Make sure dockerd is running and test Docker
@@ -337,6 +346,41 @@ jobs:
337346 working-directory : ${{ github.workspace }}/terraform-kayobe-multinode
338347 if : inputs.upgrade == 'major'
339348
349+ - name : Stash changes before checking out to current terraform-kayobe-multinode
350+ run : |
351+ git stash
352+ working-directory : ${{ github.workspace }}/terraform-kayobe-multinode
353+ if : inputs.upgrade == 'major'
354+
355+ - name : Checkout current terraform-kayobe-multinode
356+ uses : actions/checkout@v4
357+ with :
358+ clean : false
359+ repository : stackhpc/terraform-kayobe-multinode
360+ ref : ${{ inputs.terraform_kayobe_multinode_version }}
361+ path : terraform-kayobe-multinode
362+ if : inputs.upgrade == 'major'
363+
364+ - name : Pop stashed terraform-kayobe-multinode changes
365+ id : pop-tkm
366+ run : |
367+ git stash pop
368+ working-directory : ${{ github.workspace }}/terraform-kayobe-multinode
369+ if : inputs.upgrade == 'major'
370+
371+ - name : Check terraform-kayobe-multinode git diff on pop failure
372+ id : git-diff-tkm
373+ run : |
374+ echo "GIT_DIFF_TKM=$(git diff)" >> $GITHUB_OUTPUT
375+ working-directory : ${{ github.workspace }}/terraform-kayobe-multinode
376+ if : steps.pop-tkm.outcome == 'failure'
377+
378+ - name : Display terraform-kayobe-multinode git diff on pop failure
379+ run : |
380+ echo "${{ steps.git-diff-tkm.outputs.GIT_DIFF_TKM }}"
381+ working-directory : ${{ github.workspace }}/terraform-kayobe-multinode
382+ if : steps.pop-tkm.outcome == 'failure'
383+
340384 - name : Upgrade Ansible control host
341385 run : |
342386 source venv/bin/activate &&
@@ -423,6 +467,7 @@ jobs:
423467 neutron_plugin: ${{ inputs.neutron_plugin }}\n
424468 stackhpc_kayobe_config_version: ${{ inputs.stackhpc_kayobe_config_version }}\n
425469 stackhpc_kayobe_config_previous_version: ${{ inputs.stackhpc_kayobe_config_previous_version }}\n
470+ terraform_kayobe_multinode_previous_version: ${{ inputs.terraform_kayobe_multinode_previous_version }}\n
426471 terraform_kayobe_multinode_version: ${{ inputs.terraform_kayobe_multinode_version }}\n
427472 upgrade: ${{ inputs.upgrade }}\n
428473 MESSAGE : " Multinode workflow failed :sob:"
0 commit comments