Skip to content

Commit e6de11d

Browse files
authored
Merge pull request #16 from stackhpc/upgrade-terraform-kayobe-multinode
Checkout to previous terraform-kayobe-multinode when major upgrading
2 parents 138bf15 + 5c97fa9 commit e6de11d

File tree

1 file changed

+48
-3
lines changed

1 file changed

+48
-3
lines changed

.github/workflows/multinode.yml

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ on:
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

Comments
 (0)