@@ -169,32 +169,49 @@ jobs:
169169 with :
170170 use-installer : true
171171
172- - name : Push Square API Key to Parameter store
173- run : >
174- aws ssm put-parameter
175- --name /${STACK_NAME}/SQUARE_API_KEY
176- --description "Square API Key used for stack ${STACK_NAME}"
177- --type String
178- --value ${SQUARE_API_KEY}
179- --overwrite
180-
181- - name : Push OpenAI API Key to Parameter store
182- run : >
183- aws ssm put-parameter
184- --name /${STACK_NAME}/OPENAI_API_KEY
185- --description "OpenAI API Key used for stack ${STACK_NAME}"
186- --type String
187- --value ${OPENAI_API_KEY}
188- --overwrite
189-
190- - name : Push Facebook Access Token to Parameter store
191- run : >
192- aws ssm put-parameter
193- --name /${STACK_NAME}/FB_PAGE_ACCESS_TOKEN
194- --description "Facebook Access token used for stack ${STACK_NAME}"
195- --type String
196- --value ${FB_PAGE_ACCESS_TOKEN}
197- --overwrite
172+ - name : Sync Parameters to SSM (only if changed)
173+ shell : bash
174+ run : |
175+ set -euo pipefail
176+
177+ update_param_if_changed() {
178+ local name="$1"
179+ local value="$2"
180+ local description="$3"
181+
182+ echo "Checking SSM parameter: $name"
183+
184+ # Get current value (if it exists). Suppress error if not found.
185+ local current_value=""
186+ if current_value_json=$(aws ssm get-parameter --name "$name" --query 'Parameter.Value' --output text 2>/dev/null); then
187+ current_value="$current_value_json"
188+ fi
189+
190+ if [[ "$current_value" == "$value" ]]; then
191+ echo "No change for $name, skipping put-parameter"
192+ else
193+ echo "Value changed for $name, updating in SSM"
194+ aws ssm put-parameter \
195+ --name "$name" \
196+ --description "$description" \
197+ --type String \
198+ --value "$value" \
199+ --overwrite
200+ fi
201+ }
202+
203+ update_param_if_changed "/${STACK_NAME}/SQUARE_API_KEY" \
204+ "${SQUARE_API_KEY}" \
205+ "Square API Key used for stack ${STACK_NAME}"
206+
207+ update_param_if_changed "/${STACK_NAME}/OPENAI_API_KEY" \
208+ "${OPENAI_API_KEY}" \
209+ "OpenAI API Key used for stack ${STACK_NAME}"
210+
211+ update_param_if_changed "/${STACK_NAME}/FB_PAGE_ACCESS_TOKEN" \
212+ "${FB_PAGE_ACCESS_TOKEN}" \
213+ "Facebook Access token used for stack ${STACK_NAME}"
214+
198215
199216 - name : Cache SAM Build files
200217 uses : actions/cache@v4
0 commit comments