99 lambda_build_flags :
1010 description : >
1111 JSON map of lambda_name -> force-build flag.
12- e.g. {"recordprocessor":true,"ack-backend":false}
12+ e.g. {"backend":true," recordprocessor":true,"ack-backend":false}
1313 required : false
1414 type : string
1515 default : " {}"
7373 lambda_build_flags :
7474 description : >
7575 JSON map of lambda_name -> force-build flag.
76- e.g. {"recordprocessor":true,"ack-backend":false}
76+ e.g. {"backend":true," recordprocessor":true,"ack-backend":false}
7777 required : false
7878 type : string
7979 default : " {}"
8080 lambda_image_overrides :
8181 description : >
8282 JSON map of lambda_name -> immutable image selector for reuse mode.
83- e.g. {"recordprocessor ":"internal-dev-git-abc123","ack-backend":"123456789012.dkr.ecr.eu-west-2.amazonaws.com/imms-ackbackend-repo@sha256:..."}
83+ e.g. {"backend ":"internal-dev-git-abc123","ack-backend":"123456789012.dkr.ecr.eu-west-2.amazonaws.com/imms-ackbackend-repo@sha256:..."}
8484 required : false
8585 type : string
8686 default : " {}"
@@ -118,34 +118,54 @@ jobs:
118118 fail-fast : false
119119 matrix :
120120 include :
121+ - lambda_name : backend
122+ ecr_repository : imms-backend-repo
123+ lambda_dir : backend
124+ - lambda_name : batch_processor_filter
125+ ecr_repository : imms-batch-processor-filter-repo
126+ lambda_dir : batch_processor_filter
127+ - lambda_name : delta_backend
128+ ecr_repository : imms-delta-backend-repo
129+ lambda_dir : delta_backend
130+ - lambda_name : filenameprocessor
131+ ecr_repository : imms-filenameprocessor-repo
132+ lambda_dir : filenameprocessor
133+ - lambda_name : id_sync
134+ ecr_repository : imms-id-sync-repo
135+ lambda_dir : id_sync
136+ - lambda_name : mesh_processor
137+ ecr_repository : imms-mesh-processor-repo
138+ lambda_dir : mesh_processor
139+ - lambda_name : mns_publisher
140+ ecr_repository : imms-mns-publisher-repo
141+ lambda_dir : mns_publisher
142+ - lambda_name : recordforwarder
143+ ecr_repository : imms-recordforwarder-repo
144+ lambda_dir : recordforwarder
145+ - lambda_name : redis_sync
146+ ecr_repository : imms-redis-sync-repo
147+ lambda_dir : redis_sync
121148 - lambda_name : recordprocessor
122- tf_var_suffix : recordprocessor
123149 ecr_repository : imms-recordprocessor-repo
124- dockerfile_path : lambdas/recordprocessor/Dockerfile
125- lambda_paths : |
126- lambdas/recordprocessor/
150+ lambda_dir : recordprocessor
127151 - lambda_name : ack-backend
128- tf_var_suffix : ack_backend
129152 ecr_repository : imms-ackbackend-repo
130- dockerfile_path : lambdas/ack_backend/Dockerfile
131- lambda_paths : |
132- lambdas/ack_backend/
153+ lambda_dir : ack_backend
133154 uses : ./.github/workflows/deploy-lambda-artifact.yml
134155 with :
135156 lambda_name : ${{ matrix.lambda_name }}
136- tf_var_suffix : ${{ matrix.tf_var_suffix }}
157+ tf_var_suffix : ${{ matrix.lambda_dir }}
137158 environment : ${{ inputs.environment }}
138159 sub_environment : ${{ inputs.sub_environment }}
139160 build_image : ${{ fromJson(inputs.lambda_build_flags)[matrix.lambda_name] || false }}
140161 image_version : ${{ fromJson(inputs.lambda_image_overrides)[matrix.lambda_name] || '' }}
141162 run_diff_check : ${{ inputs.run_diff_check }}
142163 diff_base_sha : ${{ inputs.diff_base_sha }}
143164 diff_head_sha : ${{ inputs.diff_head_sha }}
144- lambda_paths : ${{ matrix.lambda_paths }}
145- shared_paths : |
146- lambdas/shared/src/common/
165+ lambda_paths : lambdas/${{ matrix.lambda_dir }}/
166+ shared_paths : lambdas/shared/src/common/
147167 docker_context_path : lambdas
148- dockerfile_path : ${{ matrix.dockerfile_path }}
168+ dockerfile_path : lambdas/ ${{ matrix.lambda_dir }}/Dockerfile
149169 ecr_repository : ${{ matrix.ecr_repository }}
150170 image_tag_prefix : ${{ inputs.sub_environment }}-
151171 allow_implicit_tag_prefix_reuse : ${{ inputs.sub_environment == 'internal-dev' || startsWith(inputs.sub_environment, 'pr-') }}
@@ -159,7 +179,6 @@ jobs:
159179 if : ${{ !cancelled() && needs.deploy-lambda-images.result == 'success' }}
160180 outputs :
161181 image_uris_json : ${{ steps.lambda-images.outputs.image_uris_json }}
162- terraform_image_uris_json : ${{ steps.lambda-images.outputs.terraform_image_uris_json }}
163182 runs-on : ubuntu-latest
164183 environment :
165184 name : ${{ inputs.environment }}
@@ -218,17 +237,11 @@ jobs:
218237 "${manifest_files[@]}"
219238 )"
220239
221- terraform_image_uris_json="$(
222- jq -cs 'map(select(.tf_var_suffix != null and .tf_var_suffix != "" and .image_uri != null) | {(.tf_var_suffix): .image_uri}) | add' \
223- "${manifest_files[@]}"
224- )"
225-
226240 echo "image_uris_json=${image_uris_json}" >> "$GITHUB_OUTPUT"
227- echo "terraform_image_uris_json=${terraform_image_uris_json}" >> "$GITHUB_OUTPUT"
228241 jq -er '
229- to_entries[]
230- | "TF_VAR_\(.key )_image_uri=\(.value )"
231- ' <<< "${terraform_image_uris_json }" >> "$GITHUB_ENV"
242+ select(.tf_var_suffix != null and .tf_var_suffix != "" and .image_uri != null)
243+ | "TF_VAR_\(.tf_var_suffix )_image_uri=\(.image_uri )"
244+ ' "${manifest_files[@] }" >> "$GITHUB_ENV"
232245
233246 - name : Terraform Init
234247 working-directory : infrastructure/instance
@@ -270,22 +283,6 @@ jobs:
270283 with :
271284 terraform_version : " 1.12.2"
272285
273- - name : Restore lambda image Terraform vars
274- env :
275- TERRAFORM_IMAGE_URIS_JSON : ${{ needs.terraform-plan.outputs.terraform_image_uris_json }}
276- run : |
277- set -euo pipefail
278-
279- if [ -z "${TERRAFORM_IMAGE_URIS_JSON}" ] || [ "${TERRAFORM_IMAGE_URIS_JSON}" = "null" ]; then
280- echo "terraform-plan did not emit terraform_image_uris_json."
281- exit 1
282- fi
283-
284- jq -er '
285- to_entries[]
286- | "TF_VAR_\(.key)_image_uri=\(.value)"
287- ' <<< "${TERRAFORM_IMAGE_URIS_JSON}" >> "$GITHUB_ENV"
288-
289286 - name : Retrieve Terraform Plan
290287 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
291288 with :
0 commit comments