From d096f68e7e68f852f61766d54a6214ba8ef192c2 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 15:12:32 -0500 Subject: [PATCH 1/7] Tweak verbiage --- src/function/app.py | 2 +- test/unit/test_app.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/function/app.py b/src/function/app.py index 2d196e8..250693a 100644 --- a/src/function/app.py +++ b/src/function/app.py @@ -6,5 +6,5 @@ def lambda_handler(event, context): return { "statusCode": 200, - "body": f"Hello from a sample Python Lambda! Payload: {PAYLOAD}", + "body": f"Hello from a sample Python Lambda Function! Payload: {PAYLOAD}", } diff --git a/test/unit/test_app.py b/test/unit/test_app.py index 4912fb8..8ae6210 100644 --- a/test/unit/test_app.py +++ b/test/unit/test_app.py @@ -6,7 +6,7 @@ def test_primary_handler(): result = app.lambda_handler(None, None) assert result["statusCode"] == 200 - assert result["body"] == "Hello from a sample Python Lambda! Payload: None" + assert result["body"] == "Hello from a sample Python Lambda Function! Payload: None" def test_primary_handler_with_payload(): @@ -14,5 +14,6 @@ def test_primary_handler_with_payload(): result = app.lambda_handler(None, None) assert result["statusCode"] == 200 assert ( - result["body"] == "Hello from a sample Python Lambda! Payload: test_payload" + result["body"] + == "Hello from a sample Python Lambda Function! Payload: test_payload" ) From 0c6444d3624014c6f4e925e960651c53e1acb2bb Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 15:15:47 -0500 Subject: [PATCH 2/7] Fix ref --- .github/workflows/deploy-sandbox.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index c7fe5a2..87adab2 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -71,7 +71,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@v0.1.0 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.0 with: tf_version: '1.5.5' tg_version: '0.54.11' From 3eb236dd6fa7a1c566a9b42d510e81899c906388 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 15:52:57 -0500 Subject: [PATCH 3/7] Reusable workflow for matrix --- .github/workflows/deploy-sandbox.yml | 56 +++------------------------- 1 file changed, 5 insertions(+), 51 deletions(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index 87adab2..d784090 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -10,57 +10,11 @@ permissions: jobs: build-matrix: - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.build-matrix.outputs.matrix }} - steps: - - uses: actions/checkout@09d2acae674a48949e3602304ab46fd20ae0c42f - - name: Build Environment Matrix - id: build-matrix - shell: python - env: - PLATFORM_ENVIRONMENT: "sandbox" - run: | - from pathlib import Path - import os - import json - - def discover_environments(platform_path: Path = Path("platform")) -> list[Path]: - return [d for d in platform_path.iterdir() if d.is_dir()] - - def discover_regions(environment_path: Path) -> list[Path]: - return [d for d in environment_path.iterdir() if d.is_dir()] - - def discover_instances(region_path: Path) -> list[Path]: - return [d for d in region_path.iterdir() if d.is_dir()] - - try: - ENVIRONMENT = os.environ['PLATFORM_ENVIRONMENT'] - except KeyError as ke: - raise ValueError("Environment variable named PLATFORM_ENVIRONMENT was not found. This variable must be supplied so that a matrix of environments can be built!") - - if len(ENVIRONMENT) == 0: - raise ValueError("Environment variable PLATFORM_ENVIRONMENT was empty. This variable must be supplied so that a matrix of environments can be built!") - - all_environments = discover_environments() - matrix = {"terragrunt_environment": []} - try: - selected_environment = list(filter(lambda x: x.name == ENVIRONMENT, all_environments))[0] - except Exception: - raise ValueError(f"Expected environment '{ENVIRONMENT}' not found in {all_environments}") - - regions = discover_regions(environment_path=selected_environment) - - for region_path in regions: - region_instances = discover_instances(region_path=region_path) - for instance in region_instances: - matrix["terragrunt_environment"].append({"environment": selected_environment.name, "region": region_path.name, "instance": instance.name}) - - print("Generated the following environment matrix:") - print(json.dumps(matrix, indent=4)) - - with open(os.environ["GITHUB_OUTPUT"], "a") as f: - f.write(f"matrix={json.dumps(matrix, separators=(',', ':'))}") + permissions: + contents: read + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.0 + with: + platform_environment: sandbox call-terragrunt-deploy: needs: build-matrix From 1d6f86198a4e41775eeda983273c34b08177d9e8 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 15:55:00 -0500 Subject: [PATCH 4/7] Bump workflow versions --- .github/workflows/deploy-sandbox.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index d784090..564fff7 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -12,7 +12,7 @@ jobs: build-matrix: permissions: contents: read - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.0 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.1 with: platform_environment: sandbox @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.0 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.1 with: tf_version: '1.5.5' tg_version: '0.54.11' From 0157e790ff7f927f2056284afa319678d932cc50 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 15:58:06 -0500 Subject: [PATCH 5/7] Bump workflow versions --- .github/workflows/deploy-sandbox.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index 564fff7..88dced8 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -12,7 +12,7 @@ jobs: build-matrix: permissions: contents: read - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.1 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.2 with: platform_environment: sandbox @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.1 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.2 with: tf_version: '1.5.5' tg_version: '0.54.11' From c5694c14bf5bb5c2af9f73bf78f42c4bc1e5d7f9 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 16:03:14 -0500 Subject: [PATCH 6/7] Bump workflow versions --- .github/workflows/deploy-sandbox.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index 88dced8..cf00eca 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -12,7 +12,7 @@ jobs: build-matrix: permissions: contents: read - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.2 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.3 with: platform_environment: sandbox @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.2 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.3 with: tf_version: '1.5.5' tg_version: '0.54.11' From 5727d3918f60270048da806a3442be38208ec12b Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Mon, 16 Jun 2025 16:06:09 -0500 Subject: [PATCH 7/7] Drop workflow permissions, apply reusable workflow to production --- .github/workflows/deploy-sandbox.yml | 4 -- .github/workflows/release-published.yml | 63 +++---------------------- 2 files changed, 6 insertions(+), 61 deletions(-) diff --git a/.github/workflows/deploy-sandbox.yml b/.github/workflows/deploy-sandbox.yml index cf00eca..cd3aacd 100644 --- a/.github/workflows/deploy-sandbox.yml +++ b/.github/workflows/deploy-sandbox.yml @@ -4,10 +4,6 @@ on: pull_request: branches: [ "**" ] -permissions: - id-token: write - contents: read - jobs: build-matrix: permissions: diff --git a/.github/workflows/release-published.yml b/.github/workflows/release-published.yml index 1330cb9..b201e36 100644 --- a/.github/workflows/release-published.yml +++ b/.github/workflows/release-published.yml @@ -5,63 +5,13 @@ on: name: Deploy to Production -permissions: - contents: read - - jobs: build-matrix: - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.build-matrix.outputs.matrix }} - steps: - - uses: actions/checkout@09d2acae674a48949e3602304ab46fd20ae0c42f - - name: Build Environment Matrix - id: build-matrix - shell: python - env: - PLATFORM_ENVIRONMENT: "production" - run: | - from pathlib import Path - import os - import json - - def discover_environments(platform_path: Path = Path("platform")) -> list[Path]: - return [d for d in platform_path.iterdir() if d.is_dir()] - - def discover_regions(environment_path: Path) -> list[Path]: - return [d for d in environment_path.iterdir() if d.is_dir()] - - def discover_instances(region_path: Path) -> list[Path]: - return [d for d in region_path.iterdir() if d.is_dir()] - - try: - ENVIRONMENT = os.environ['PLATFORM_ENVIRONMENT'] - except KeyError as ke: - raise ValueError("Environment variable named PLATFORM_ENVIRONMENT was not found. This variable must be supplied so that a matrix of environments can be built!") - - if len(ENVIRONMENT) == 0: - raise ValueError("Environment variable PLATFORM_ENVIRONMENT was empty. This variable must be supplied so that a matrix of environments can be built!") - - all_environments = discover_environments() - matrix = {"terragrunt_environment": []} - try: - selected_environment = list(filter(lambda x: x.name == ENVIRONMENT, all_environments))[0] - except Exception: - raise ValueError(f"Expected environment '{ENVIRONMENT}' not found in {all_environments}") - - regions = discover_regions(environment_path=selected_environment) - - for region_path in regions: - region_instances = discover_instances(region_path=region_path) - for instance in region_instances: - matrix["terragrunt_environment"].append({"environment": selected_environment.name, "region": region_path.name, "instance": instance.name}) - - print("Generated the following environment matrix:") - print(json.dumps(matrix, indent=4)) - - with open(os.environ["GITHUB_OUTPUT"], "a") as f: - f.write(f"matrix={json.dumps(matrix, separators=(',', ':'))}") + permissions: + contents: read + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-github-matrix-tg.yml@0.1.3 + with: + platform_environment: production call-terragrunt-deploy: needs: build-matrix @@ -72,12 +22,11 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@v0.1.0 + uses: launchbynttdata/launch-workflows/.github/workflows/reusable-terragrunt-deploy.yml@0.1.3 with: tf_version: '1.5.5' tg_version: '0.54.11' environment: ${{ matrix.terragrunt_environment.environment }} region: ${{ matrix.terragrunt_environment.region }} env_id: ${{ matrix.terragrunt_environment.instance }} - secrets: inherit