From 93c239faf2a7ac4ae381b93ba13f92712874800f Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Mon, 14 Apr 2025 20:13:12 -0700 Subject: [PATCH 1/7] Only run terraform github actions for specific environments if there are changes --- .github/workflows/terraform-apply.yml | 10 ++++------ .github/workflows/terraform-plan.yml | 11 ++++------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/terraform-apply.yml b/.github/workflows/terraform-apply.yml index 6e7e142b08..2fe36e18f1 100644 --- a/.github/workflows/terraform-apply.yml +++ b/.github/workflows/terraform-apply.yml @@ -43,9 +43,8 @@ jobs: staging: name: Staging - - needs: targets - + needs: [targets] + if: ${{ needs.targets.outputs.staging != '[]' && needs.targets.outputs.staging != '' }} runs-on: ubuntu-latest permissions: @@ -79,9 +78,8 @@ jobs: production: name: Production - - needs: targets - + needs: [targets] + if: ${{ needs.targets.outputs.production != '[]' && needs.targets.outputs.production != '' }} runs-on: ubuntu-latest permissions: diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml index 049d376e55..202d1e8349 100644 --- a/.github/workflows/terraform-plan.yml +++ b/.github/workflows/terraform-plan.yml @@ -8,7 +8,6 @@ on: jobs: targets: name: Find targets - runs-on: ubuntu-latest outputs: @@ -37,9 +36,8 @@ jobs: staging: name: Staging - - needs: targets - + needs: [targets] + if: ${{ needs.targets.outputs.staging != '[]' && needs.targets.outputs.staging != '' }} runs-on: ubuntu-latest permissions: @@ -85,9 +83,8 @@ jobs: production: name: Production - - needs: targets - + needs: [targets] + if: ${{ needs.targets.outputs.production != '[]' && needs.targets.outputs.production != '' }} runs-on: ubuntu-latest permissions: From a9208628f7ce31da844fad3ba06affc27aff11c5 Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Mon, 14 Apr 2025 20:43:49 -0700 Subject: [PATCH 2/7] Add dags and plugins to staging composer --- .../gcs/us/storage_bucket_object.tf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf diff --git a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf new file mode 100644 index 0000000000..cf9ef3fcdd --- /dev/null +++ b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf @@ -0,0 +1,15 @@ +locals { + files = setunion( + fileset("../../../../airflow", "dags/**/*.py"), + fileset("../../../../airflow", "dags/**/*.yml"), + fileset("../../../../airflow", "dags/**/*.md"), + fileset("../../../../airflow", "plugins/**/*.py") + ) +} + +resource "google_storage_bucket_object" "calitp-staging-composer" { + for_each = local.files + name = each.value + source = each.value + bucket = google_storage_bucket.calitp-staging-composer.id +} From 5188afba6ae6e945367934df48da1b581cfdd550 Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Mon, 14 Apr 2025 20:45:36 -0700 Subject: [PATCH 3/7] Update composer bucket labels --- iac/cal-itp-data-infra-staging/gcs/us/outputs.tf | 4 ++++ .../gcs/us/storage_bucket.tf | 4 ++++ .../gcs/us/storage_bucket_iam_member.tf | 2 +- .../gcs/us/storage_bucket_object.tf | 15 --------------- 4 files changed, 9 insertions(+), 16 deletions(-) delete mode 100644 iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf diff --git a/iac/cal-itp-data-infra-staging/gcs/us/outputs.tf b/iac/cal-itp-data-infra-staging/gcs/us/outputs.tf index 70535f178c..ad86f5fcd0 100755 --- a/iac/cal-itp-data-infra-staging/gcs/us/outputs.tf +++ b/iac/cal-itp-data-infra-staging/gcs/us/outputs.tf @@ -126,6 +126,10 @@ output "google_storage_bucket_calitp-staging-composer_name" { value = google_storage_bucket.calitp-staging-composer.name } +output "google_storage_bucket_calitp-staging-composer_id" { + value = google_storage_bucket.calitp-staging-composer.id +} + output "google_storage_default_object_acl_tfer--calitp-staging-data-analyses-portfolio-draft_id" { value = google_storage_default_object_acl.tfer--calitp-staging-data-analyses-portfolio-draft.id } diff --git a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket.tf b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket.tf index a6aedca88d..72034079c0 100755 --- a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket.tf +++ b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket.tf @@ -143,4 +143,8 @@ resource "google_storage_bucket" "calitp-staging-composer" { requester_pays = "false" storage_class = "STANDARD" uniform_bucket_level_access = "true" + + lifecycle { + ignore_changes = [labels] + } } diff --git a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_iam_member.tf b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_iam_member.tf index 129247fd40..b5105f67f1 100755 --- a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_iam_member.tf +++ b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_iam_member.tf @@ -42,6 +42,6 @@ resource "google_storage_bucket_iam_member" "calitp-staging-dbt-docs" { resource "google_storage_bucket_iam_member" "calitp-staging-composer" { bucket = google_storage_bucket.calitp-staging-composer.name - member = "projectEditor:cal-itp-data-infra" + member = "projectEditor:cal-itp-data-infra-staging" role = "roles/storage.legacyBucketOwner" } diff --git a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf b/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf deleted file mode 100644 index cf9ef3fcdd..0000000000 --- a/iac/cal-itp-data-infra-staging/gcs/us/storage_bucket_object.tf +++ /dev/null @@ -1,15 +0,0 @@ -locals { - files = setunion( - fileset("../../../../airflow", "dags/**/*.py"), - fileset("../../../../airflow", "dags/**/*.yml"), - fileset("../../../../airflow", "dags/**/*.md"), - fileset("../../../../airflow", "plugins/**/*.py") - ) -} - -resource "google_storage_bucket_object" "calitp-staging-composer" { - for_each = local.files - name = each.value - source = each.value - bucket = google_storage_bucket.calitp-staging-composer.id -} From 88e7c3103fb82b70ec383a559a3fa751db0ce23e Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Mon, 14 Apr 2025 21:09:03 -0700 Subject: [PATCH 4/7] Use Terraform plan/apply to sync airflow changes --- .github/workflows/composer-apply-files.yml | 27 ++++++++++++++++++ .github/workflows/composer-plan-files.yml | 28 +++++++++++++++++++ .../airflow/us/.terraform.lock.hcl | 22 +++++++++++++++ .../airflow/us/provider.tf | 16 +++++++++++ .../airflow/us/storage_bucket_object.tf | 15 ++++++++++ .../airflow/us/variables.tf | 17 +++++++++++ 6 files changed, 125 insertions(+) create mode 100644 .github/workflows/composer-apply-files.yml create mode 100644 .github/workflows/composer-plan-files.yml create mode 100644 iac/cal-itp-data-infra-staging/airflow/us/.terraform.lock.hcl create mode 100755 iac/cal-itp-data-infra-staging/airflow/us/provider.tf create mode 100644 iac/cal-itp-data-infra-staging/airflow/us/storage_bucket_object.tf create mode 100644 iac/cal-itp-data-infra-staging/airflow/us/variables.tf diff --git a/.github/workflows/composer-apply-files.yml b/.github/workflows/composer-apply-files.yml new file mode 100644 index 0000000000..1ef6fc904a --- /dev/null +++ b/.github/workflows/composer-apply-files.yml @@ -0,0 +1,27 @@ +name: Apply Airflow DAGs + +on: + pull_request: + paths: + - 'airflow/**' + +jobs: + staging: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: 'google-github-actions/auth@v2' + with: + create_credentials_file: 'true' + project_id: cal-itp-data-infra-staging + workload_identity_provider: 'projects/473674835135/locations/global/workloadIdentityPools/github-actions-pool/providers/github-actions-provider' + service_account: 'github-actions-terraform@cal-itp-data-infra-staging.iam.gserviceaccount.com' + + - name: Terraform Apply + uses: dflook/terraform-apply@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + path: iac/cal-itp-data-infra-staging/airflow/us diff --git a/.github/workflows/composer-plan-files.yml b/.github/workflows/composer-plan-files.yml new file mode 100644 index 0000000000..0fa3f6689b --- /dev/null +++ b/.github/workflows/composer-plan-files.yml @@ -0,0 +1,28 @@ +name: Plan Airflow DAGs + +on: + pull_request: + paths: + - 'airflow/**' + +jobs: + staging: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: 'google-github-actions/auth@v2' + with: + create_credentials_file: 'true' + project_id: cal-itp-data-infra-staging + workload_identity_provider: 'projects/473674835135/locations/global/workloadIdentityPools/github-actions-pool/providers/github-actions-provider' + service_account: 'github-actions-terraform@cal-itp-data-infra-staging.iam.gserviceaccount.com' + + - name: Terraform Plan + uses: dflook/terraform-plan@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + add_github_comment: changes-only + path: iac/cal-itp-data-infra-staging/airflow/us diff --git a/iac/cal-itp-data-infra-staging/airflow/us/.terraform.lock.hcl b/iac/cal-itp-data-infra-staging/airflow/us/.terraform.lock.hcl new file mode 100644 index 0000000000..4119f7e683 --- /dev/null +++ b/iac/cal-itp-data-infra-staging/airflow/us/.terraform.lock.hcl @@ -0,0 +1,22 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/google" { + version = "4.59.0" + constraints = "~> 4.59.0" + hashes = [ + "h1:FnhQjRf+Tt0SagED79ryejOd0lqQ42zIbWD2Z9xCNVo=", + "zh:057042a29992ee5bddb8b0785ebba5c1455112602760bd88dca2ccab66de714c", + "zh:21a0e30a76a9e3e375a374ecd2e82d3240b32913f54017c7b8eca7165ffb2e27", + "zh:26cdc960455b335590c5473593d66eddbdb9c60709f416327092a9b4ba8c8b70", + "zh:2d8ffb7c150adb43d58fd0057b9a38e9e0435382bb870bf6fe3f13717828a34b", + "zh:4c1156babfaffcbb5e91b8a82710a4a33119be416aaee1b85fe5f45162ac37e2", + "zh:54de19d1d40fdfa2f9804b64355cac6e6de1bdcdcd193317dd2e24f923cd3007", + "zh:9f029f0478458d39cd7255abf8ce32d33111bc6f1ca822718e66344bea61522d", + "zh:ac5b8867769921f56e95c95332c6167b73c6b6275f158b762b01a0a8013b67a8", + "zh:d010b2b8b0d547fb712c2cc3e0f816c001783fcac072191a3e8ed5e22f826951", + "zh:d4e6b5f5aa78b16761c9b47534b631c2d1b6d6ec01f97a15db84dec20be3b8b2", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "zh:fefbd0cd4cb94ecee0c6d99f079b6cbb56b86cd63609b72395c4f1fa7c2addcb", + ] +} diff --git a/iac/cal-itp-data-infra-staging/airflow/us/provider.tf b/iac/cal-itp-data-infra-staging/airflow/us/provider.tf new file mode 100755 index 0000000000..ab4940a3bd --- /dev/null +++ b/iac/cal-itp-data-infra-staging/airflow/us/provider.tf @@ -0,0 +1,16 @@ +provider "google" { + project = "cal-itp-data-infra-staging" +} + +terraform { + required_providers { + google = { + version = "~> 4.59.0" + } + } + + backend "gcs" { + bucket = "calitp-staging-gcp-components-tfstate" + prefix = "cal-itp-data-infra-staging/airflow" + } +} diff --git a/iac/cal-itp-data-infra-staging/airflow/us/storage_bucket_object.tf b/iac/cal-itp-data-infra-staging/airflow/us/storage_bucket_object.tf new file mode 100644 index 0000000000..cb174168c5 --- /dev/null +++ b/iac/cal-itp-data-infra-staging/airflow/us/storage_bucket_object.tf @@ -0,0 +1,15 @@ +locals { + files = setunion( + fileset("../../../../airflow", "dags/**/*.py"), + fileset("../../../../airflow", "dags/**/*.yml"), + fileset("../../../../airflow", "dags/**/*.md"), + fileset("../../../../airflow", "plugins/**/*.py") + ) +} + +resource "google_storage_bucket_object" "calitp-staging-composer" { + for_each = local.files + name = each.value + source = each.value + bucket = data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-composer_id +} diff --git a/iac/cal-itp-data-infra-staging/airflow/us/variables.tf b/iac/cal-itp-data-infra-staging/airflow/us/variables.tf new file mode 100644 index 0000000000..9461e701a3 --- /dev/null +++ b/iac/cal-itp-data-infra-staging/airflow/us/variables.tf @@ -0,0 +1,17 @@ +data "terraform_remote_state" "networks" { + backend = "gcs" + + config = { + bucket = "calitp-staging-gcp-components-tfstate" + prefix = "cal-itp-data-infra-staging/networks" + } +} + +data "terraform_remote_state" "gcs" { + backend = "gcs" + + config = { + bucket = "calitp-staging-gcp-components-tfstate" + prefix = "cal-itp-data-infra-staging/gcs" + } +} From 4d00ee8e065a37ae1ef4852eb17200eec256b47b Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Tue, 15 Apr 2025 12:01:24 -0700 Subject: [PATCH 5/7] Bump provider for staging GCS --- .../gcs/us/.terraform.lock.hcl | 28 +++++++++---------- .../gcs/us/provider.tf | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/iac/cal-itp-data-infra-staging/gcs/us/.terraform.lock.hcl b/iac/cal-itp-data-infra-staging/gcs/us/.terraform.lock.hcl index 4119f7e683..42bbf3ec24 100644 --- a/iac/cal-itp-data-infra-staging/gcs/us/.terraform.lock.hcl +++ b/iac/cal-itp-data-infra-staging/gcs/us/.terraform.lock.hcl @@ -2,21 +2,21 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/google" { - version = "4.59.0" - constraints = "~> 4.59.0" + version = "6.29.0" + constraints = "~> 6.29.0" hashes = [ - "h1:FnhQjRf+Tt0SagED79ryejOd0lqQ42zIbWD2Z9xCNVo=", - "zh:057042a29992ee5bddb8b0785ebba5c1455112602760bd88dca2ccab66de714c", - "zh:21a0e30a76a9e3e375a374ecd2e82d3240b32913f54017c7b8eca7165ffb2e27", - "zh:26cdc960455b335590c5473593d66eddbdb9c60709f416327092a9b4ba8c8b70", - "zh:2d8ffb7c150adb43d58fd0057b9a38e9e0435382bb870bf6fe3f13717828a34b", - "zh:4c1156babfaffcbb5e91b8a82710a4a33119be416aaee1b85fe5f45162ac37e2", - "zh:54de19d1d40fdfa2f9804b64355cac6e6de1bdcdcd193317dd2e24f923cd3007", - "zh:9f029f0478458d39cd7255abf8ce32d33111bc6f1ca822718e66344bea61522d", - "zh:ac5b8867769921f56e95c95332c6167b73c6b6275f158b762b01a0a8013b67a8", - "zh:d010b2b8b0d547fb712c2cc3e0f816c001783fcac072191a3e8ed5e22f826951", - "zh:d4e6b5f5aa78b16761c9b47534b631c2d1b6d6ec01f97a15db84dec20be3b8b2", + "h1:U0Ca/+zZMMuea+r80qu9SRzWu8Waxny5aWGZXn+kVhc=", + "zh:01a501df2fb9ecbf0935b27e588bc7b6bcaf4ab0043747f4229c25e4ba47dadb", + "zh:056f8ab2b73755cf5a67228ab4a07882e76265fa25b07f2794d9939288164f48", + "zh:0dbdfa564f7db8a2e6f7e76437a9850b6101450120c08e87cf9846330736c0c6", + "zh:3c3e4ee801de22812bd07cb3d36b227f8057d7825998fb4d97051764a565b89b", + "zh:4e440eb4c60da9cd7d23b3b99be54c869472fd70006c39639a04b9a51248929c", + "zh:659490efd20b3e98e4166b2925baa18549d82e4c16751bc92baed0185d22d108", + "zh:9ae24b98a3a3346b8004c6b87e3b59decba2f64c7407e106263859c275105ef8", + "zh:c64cff9c17e302236bb9e0a6d5eff4c92540ce3947269f3db94e2b9a1b1a3f4e", + "zh:d2fd0aecbbbba463bcb0640f54c8df5e7a63918bdd44236dcd36dff33bb8de09", + "zh:f022316369ea676f5f9d11768b4c621abd3304c1e6d1f0c2361e4e2620c4b65d", "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - "zh:fefbd0cd4cb94ecee0c6d99f079b6cbb56b86cd63609b72395c4f1fa7c2addcb", + "zh:feb7d4fdbebdfabac2aaa73376f754736ccf089fa90adf6388701f89801188e6", ] } diff --git a/iac/cal-itp-data-infra-staging/gcs/us/provider.tf b/iac/cal-itp-data-infra-staging/gcs/us/provider.tf index 87eb28d125..2722850c3a 100755 --- a/iac/cal-itp-data-infra-staging/gcs/us/provider.tf +++ b/iac/cal-itp-data-infra-staging/gcs/us/provider.tf @@ -5,7 +5,7 @@ provider "google" { terraform { required_providers { google = { - version = "~> 4.59.0" + version = "~> 6.29.0" } } From 097f22af0ae59c1ae9b02c74e9071f06c719845e Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Tue, 15 Apr 2025 12:03:19 -0700 Subject: [PATCH 6/7] Bump provider for production GCS --- .../gcs/us/.terraform.lock.hcl | 28 +++++++++---------- iac/cal-itp-data-infra/gcs/us/provider.tf | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/iac/cal-itp-data-infra/gcs/us/.terraform.lock.hcl b/iac/cal-itp-data-infra/gcs/us/.terraform.lock.hcl index 4119f7e683..42bbf3ec24 100644 --- a/iac/cal-itp-data-infra/gcs/us/.terraform.lock.hcl +++ b/iac/cal-itp-data-infra/gcs/us/.terraform.lock.hcl @@ -2,21 +2,21 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/google" { - version = "4.59.0" - constraints = "~> 4.59.0" + version = "6.29.0" + constraints = "~> 6.29.0" hashes = [ - "h1:FnhQjRf+Tt0SagED79ryejOd0lqQ42zIbWD2Z9xCNVo=", - "zh:057042a29992ee5bddb8b0785ebba5c1455112602760bd88dca2ccab66de714c", - "zh:21a0e30a76a9e3e375a374ecd2e82d3240b32913f54017c7b8eca7165ffb2e27", - "zh:26cdc960455b335590c5473593d66eddbdb9c60709f416327092a9b4ba8c8b70", - "zh:2d8ffb7c150adb43d58fd0057b9a38e9e0435382bb870bf6fe3f13717828a34b", - "zh:4c1156babfaffcbb5e91b8a82710a4a33119be416aaee1b85fe5f45162ac37e2", - "zh:54de19d1d40fdfa2f9804b64355cac6e6de1bdcdcd193317dd2e24f923cd3007", - "zh:9f029f0478458d39cd7255abf8ce32d33111bc6f1ca822718e66344bea61522d", - "zh:ac5b8867769921f56e95c95332c6167b73c6b6275f158b762b01a0a8013b67a8", - "zh:d010b2b8b0d547fb712c2cc3e0f816c001783fcac072191a3e8ed5e22f826951", - "zh:d4e6b5f5aa78b16761c9b47534b631c2d1b6d6ec01f97a15db84dec20be3b8b2", + "h1:U0Ca/+zZMMuea+r80qu9SRzWu8Waxny5aWGZXn+kVhc=", + "zh:01a501df2fb9ecbf0935b27e588bc7b6bcaf4ab0043747f4229c25e4ba47dadb", + "zh:056f8ab2b73755cf5a67228ab4a07882e76265fa25b07f2794d9939288164f48", + "zh:0dbdfa564f7db8a2e6f7e76437a9850b6101450120c08e87cf9846330736c0c6", + "zh:3c3e4ee801de22812bd07cb3d36b227f8057d7825998fb4d97051764a565b89b", + "zh:4e440eb4c60da9cd7d23b3b99be54c869472fd70006c39639a04b9a51248929c", + "zh:659490efd20b3e98e4166b2925baa18549d82e4c16751bc92baed0185d22d108", + "zh:9ae24b98a3a3346b8004c6b87e3b59decba2f64c7407e106263859c275105ef8", + "zh:c64cff9c17e302236bb9e0a6d5eff4c92540ce3947269f3db94e2b9a1b1a3f4e", + "zh:d2fd0aecbbbba463bcb0640f54c8df5e7a63918bdd44236dcd36dff33bb8de09", + "zh:f022316369ea676f5f9d11768b4c621abd3304c1e6d1f0c2361e4e2620c4b65d", "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - "zh:fefbd0cd4cb94ecee0c6d99f079b6cbb56b86cd63609b72395c4f1fa7c2addcb", + "zh:feb7d4fdbebdfabac2aaa73376f754736ccf089fa90adf6388701f89801188e6", ] } diff --git a/iac/cal-itp-data-infra/gcs/us/provider.tf b/iac/cal-itp-data-infra/gcs/us/provider.tf index 1597a30e6b..48605da56c 100755 --- a/iac/cal-itp-data-infra/gcs/us/provider.tf +++ b/iac/cal-itp-data-infra/gcs/us/provider.tf @@ -5,7 +5,7 @@ provider "google" { terraform { required_providers { google = { - version = "~> 4.59.0" + version = "~> 6.29.0" } } From 2954e98a271981be787127030e338dbd23388ef7 Mon Sep 17 00:00:00 2001 From: Doc Ritezel Date: Tue, 15 Apr 2025 13:44:34 -0700 Subject: [PATCH 7/7] Set labels for Composer runs --- .github/workflows/composer-apply-files.yml | 1 + .github/workflows/composer-plan-files.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/composer-apply-files.yml b/.github/workflows/composer-apply-files.yml index 1ef6fc904a..ef2e0f9e03 100644 --- a/.github/workflows/composer-apply-files.yml +++ b/.github/workflows/composer-apply-files.yml @@ -7,6 +7,7 @@ on: jobs: staging: + name: Staging runs-on: ubuntu-latest steps: - name: Checkout diff --git a/.github/workflows/composer-plan-files.yml b/.github/workflows/composer-plan-files.yml index 0fa3f6689b..9795947325 100644 --- a/.github/workflows/composer-plan-files.yml +++ b/.github/workflows/composer-plan-files.yml @@ -7,6 +7,7 @@ on: jobs: staging: + name: Staging runs-on: ubuntu-latest steps: - name: Checkout