99 lambda_build_flags :
1010 description : >
1111 JSON map of lambda_name -> force-build flag.
12- e.g. {"recordprocessor":true,"ack-backend":false,"mock_pds":false}
12+ e.g. {"backend":true," recordprocessor":true,"ack-backend":false,"mock_pds":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,"mock_pds":false}
76+ e.g. {"backend":true," recordprocessor":true,"ack-backend":false,"mock_pds":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,40 +118,57 @@ 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 - lambda_name : mock_pds
134- tf_var_suffix : mock_pds
135155 ecr_repository : imms-mock-pds-repo
136- dockerfile_path : lambdas/mock_pds/Dockerfile
137- lambda_paths : |
138- lambdas/mock_pds/
156+ lambda_dir : mock_pds
139157 uses : ./.github/workflows/deploy-lambda-artifact.yml
140158 with :
141159 lambda_name : ${{ matrix.lambda_name }}
142- tf_var_suffix : ${{ matrix.tf_var_suffix }}
160+ tf_var_suffix : ${{ matrix.lambda_dir }}
143161 environment : ${{ inputs.environment }}
144162 sub_environment : ${{ inputs.sub_environment }}
145163 build_image : ${{ fromJson(inputs.lambda_build_flags)[matrix.lambda_name] || false }}
146164 image_version : ${{ fromJson(inputs.lambda_image_overrides)[matrix.lambda_name] || '' }}
147165 run_diff_check : ${{ inputs.run_diff_check }}
148166 diff_base_sha : ${{ inputs.diff_base_sha }}
149167 diff_head_sha : ${{ inputs.diff_head_sha }}
150- lambda_paths : ${{ matrix.lambda_paths }}
151- shared_paths : |
152- lambdas/shared/src/common/
168+ lambda_paths : lambdas/${{ matrix.lambda_dir }}/
169+ shared_paths : lambdas/shared/src/common/
153170 docker_context_path : lambdas
154- dockerfile_path : ${{ matrix.dockerfile_path }}
171+ dockerfile_path : lambdas/ ${{ matrix.lambda_dir }}/Dockerfile
155172 ecr_repository : ${{ matrix.ecr_repository }}
156173 image_tag_prefix : ${{ inputs.sub_environment }}-
157174 allow_implicit_tag_prefix_reuse : ${{ inputs.sub_environment == 'internal-dev' || startsWith(inputs.sub_environment, 'pr-') }}
@@ -165,7 +182,6 @@ jobs:
165182 if : ${{ !cancelled() && needs.deploy-lambda-images.result == 'success' }}
166183 outputs :
167184 image_uris_json : ${{ steps.lambda-images.outputs.image_uris_json }}
168- terraform_image_uris_json : ${{ steps.lambda-images.outputs.terraform_image_uris_json }}
169185 runs-on : ubuntu-latest
170186 environment :
171187 name : ${{ inputs.environment }}
@@ -224,17 +240,11 @@ jobs:
224240 "${manifest_files[@]}"
225241 )"
226242
227- terraform_image_uris_json="$(
228- jq -cs 'map(select(.tf_var_suffix != null and .tf_var_suffix != "" and .image_uri != null) | {(.tf_var_suffix): .image_uri}) | add' \
229- "${manifest_files[@]}"
230- )"
231-
232243 echo "image_uris_json=${image_uris_json}" >> "$GITHUB_OUTPUT"
233- echo "terraform_image_uris_json=${terraform_image_uris_json}" >> "$GITHUB_OUTPUT"
234244 jq -er '
235- to_entries[]
236- | "TF_VAR_\(.key )_image_uri=\(.value )"
237- ' <<< "${terraform_image_uris_json }" >> "$GITHUB_ENV"
245+ select(.tf_var_suffix != null and .tf_var_suffix != "" and .image_uri != null)
246+ | "TF_VAR_\(.tf_var_suffix )_image_uri=\(.image_uri )"
247+ ' "${manifest_files[@] }" >> "$GITHUB_ENV"
238248
239249 - name : Terraform Init
240250 working-directory : infrastructure/instance
@@ -276,22 +286,6 @@ jobs:
276286 with :
277287 terraform_version : " 1.12.2"
278288
279- - name : Restore lambda image Terraform vars
280- env :
281- TERRAFORM_IMAGE_URIS_JSON : ${{ needs.terraform-plan.outputs.terraform_image_uris_json }}
282- run : |
283- set -euo pipefail
284-
285- if [ -z "${TERRAFORM_IMAGE_URIS_JSON}" ] || [ "${TERRAFORM_IMAGE_URIS_JSON}" = "null" ]; then
286- echo "terraform-plan did not emit terraform_image_uris_json."
287- exit 1
288- fi
289-
290- jq -er '
291- to_entries[]
292- | "TF_VAR_\(.key)_image_uri=\(.value)"
293- ' <<< "${TERRAFORM_IMAGE_URIS_JSON}" >> "$GITHUB_ENV"
294-
295289 - name : Retrieve Terraform Plan
296290 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
297291 with :
0 commit comments