From eb949b4e3f47007653bce9e44043b2371ef00de0 Mon Sep 17 00:00:00 2001 From: Chisel Date: Fri, 29 Sep 2023 14:53:12 +0100 Subject: [PATCH 1/7] feat: new combined json, including shugenja --- data/imported/roles-combined.json | 85 ++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 24 deletions(-) diff --git a/data/imported/roles-combined.json b/data/imported/roles-combined.json index 123d31d6..33f28d75 100644 --- a/data/imported/roles-combined.json +++ b/data/imported/roles-combined.json @@ -3,7 +3,7 @@ "DAWN": { "ability": "", "edition": "_meta", - "firstNight": 56, + "firstNight": 57, "firstNightReminder": "Wait approximately 10 seconds. Call for eyes open, then immediately announce which players (if any) died.", "id": "DAWN", "name": "DAWN", @@ -351,7 +351,7 @@ "bountyhunter": { "ability": "You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]", "edition": "experimental", - "firstNight": 48, + "firstNight": 49, "firstNightReminder": "Point to 1 evil player. Wake the townsfolk who is evil and show them the 'You are' card and the thumbs down evil sign.", "id": "bountyhunter", "name": "Bounty Hunter", @@ -460,7 +460,7 @@ "chambermaid": { "ability": "Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability.", "edition": "bmr", - "firstNight": 54, + "firstNight": 55, "firstNightReminder": "The Chambermaid points to two players. Show the number signal (0, 1, 2, \u2026) for how many of those players wake tonight for their ability.", "id": "chambermaid", "name": "Chambermaid", @@ -535,7 +535,7 @@ "cultleader": { "ability": "Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins.", "edition": "experimental", - "firstNight": 50, + "firstNight": 51, "firstNightReminder": "If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.", "id": "cultleader", "name": "Cult Leader", @@ -905,7 +905,7 @@ "general": { "ability": "Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither.", "edition": "ks", - "firstNight": 53, + "firstNight": 54, "firstNightReminder": "Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.", "id": "general", "name": "General", @@ -1094,7 +1094,7 @@ "highpriestess": { "ability": "Each night, learn which player the Storyteller believes you should talk to most.", "edition": "experimental", - "firstNight": 52, + "firstNight": 53, "firstNightReminder": "Point to a player.", "id": "highpriestess", "image": "your direct url here", @@ -1268,7 +1268,7 @@ "leviathan": { "ability": "If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins.", "edition": "ks", - "firstNight": 57, + "firstNight": 58, "firstNightReminder": "Place the Leviathan 'Day 1' marker. Announce 'The Leviathan is in play; this is Day 1.'", "id": "leviathan", "name": "Leviathan", @@ -1420,7 +1420,7 @@ "mathematician": { "ability": "Each night, you learn how many players\u2019 abilities worked abnormally (since dawn) due to another character's ability.", "edition": "snv", - "firstNight": 55, + "firstNight": 56, "firstNightReminder": "Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.", "id": "mathematician", "name": "Mathematician", @@ -1560,7 +1560,7 @@ "nightwatchman": { "ability": "Once per game, at night, choose a player: they learn who you are.", "edition": "experimental", - "firstNight": 49, + "firstNight": 50, "firstNightReminder": "The Nightwatchman may point to a player. Wake that player, show the 'This character selected you' card and the Nightwatchman token, then point to the Nightwatchman player.", "id": "nightwatchman", "name": "Nightwatchman", @@ -2052,6 +2052,20 @@ "setup": false, "team": "demon" }, + "shugenja": { + "ability": "You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary.", + "edition": "experimental", + "firstNight": 48, + "firstNightReminder": "Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.", + "id": "shugenja", + "image": "[Your direct url here]", + "name": "Shugenja", + "otherNight": null, + "otherNightReminder": null, + "remote_image": "https://raw.githubusercontent.com/chizmw/json-on-the-clocktower/main/data/images/shugenja.png", + "setup": false, + "team": "townsfolk" + }, "slayer": { "ability": "Once per game, during the day, publicly choose a player: if they are the Demon, they die.", "edition": "tb", @@ -2131,7 +2145,7 @@ "spy": { "ability": "Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead.", "edition": "tb", - "firstNight": 51, + "firstNight": 52, "firstNightReminder": "Show the Grimoire to the Spy for as long as they need.", "id": "spy", "name": "Spy", @@ -2325,7 +2339,7 @@ "vizier": { "ability": "All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately.", "edition": "experimental", - "firstNight": 58, + "firstNight": 59, "firstNightReminder": "Announce 'The Vizier is in play' and state which player they are.", "id": "vizier", "name": "Vizier", @@ -2782,6 +2796,11 @@ "name": "preacher", "physicaltoken": false }, + "shugenja": { + "id": "shugenja", + "name": "shugenja", + "physicaltoken": false + }, "steward": { "id": "steward", "name": "steward", @@ -3315,7 +3334,7 @@ }, { "id": "Politician", - "reason": "A Pit-hag can not create an evil Politician." + "reason": "A Pit-Hag can not create an evil Politician." } ] }, @@ -3525,7 +3544,7 @@ }, { "id": "Plague Doctor", - "reason": "If the Storyteller gains the Baron ability, up to two players become out-of-play Outsiders." + "reason": "If the Storyteller gains the Baron ability, up to two players become not-in-play Outsiders." } ] }, @@ -4038,7 +4057,7 @@ { "ability": "Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead.", "edition": "tb", - "firstNight": 51, + "firstNight": 52, "firstNightReminder": "Show the Grimoire to the Spy for as long as they need.", "id": "spy", "name": "Spy", @@ -4204,7 +4223,7 @@ { "ability": "Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability.", "edition": "bmr", - "firstNight": 54, + "firstNight": 55, "firstNightReminder": "The Chambermaid points to two players. Show the number signal (0, 1, 2, \u2026) for how many of those players wake tonight for their ability.", "id": "chambermaid", "name": "Chambermaid", @@ -4700,7 +4719,7 @@ { "ability": "Each night, you learn how many players\u2019 abilities worked abnormally (since dawn) due to another character's ability.", "edition": "snv", - "firstNight": 55, + "firstNight": 56, "firstNightReminder": "Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.", "id": "mathematician", "name": "Mathematician", @@ -5141,7 +5160,7 @@ { "ability": "You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]", "edition": "experimental", - "firstNight": 48, + "firstNight": 49, "firstNightReminder": "Point to 1 evil player. Wake the townsfolk who is evil and show them the 'You are' card and the thumbs down evil sign.", "id": "bountyhunter", "name": "Bounty Hunter", @@ -5174,7 +5193,7 @@ { "ability": "Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither.", "edition": "ks", - "firstNight": 53, + "firstNight": 54, "firstNightReminder": "Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.", "id": "general", "name": "General", @@ -5238,7 +5257,7 @@ { "ability": "Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins.", "edition": "experimental", - "firstNight": 50, + "firstNight": 51, "firstNightReminder": "If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.", "id": "cultleader", "name": "Cult Leader", @@ -5284,7 +5303,7 @@ { "ability": "Once per game, at night, choose a player: they learn who you are.", "edition": "experimental", - "firstNight": 49, + "firstNight": 50, "firstNightReminder": "The Nightwatchman may point to a player. Wake that player, show the 'This character selected you' card and the Nightwatchman token, then point to the Nightwatchman player.", "id": "nightwatchman", "name": "Nightwatchman", @@ -5763,7 +5782,7 @@ { "ability": "If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins.", "edition": "ks", - "firstNight": 57, + "firstNight": 58, "firstNightReminder": "Place the Leviathan 'Day 1' marker. Announce 'The Leviathan is in play; this is Day 1.'", "id": "leviathan", "name": "Leviathan", @@ -6054,7 +6073,7 @@ { "ability": "", "edition": "_meta", - "firstNight": 56, + "firstNight": 57, "firstNightReminder": "Wait approximately 10 seconds. Call for eyes open, then immediately announce which players (if any) died.", "id": "DAWN", "name": "DAWN", @@ -6065,10 +6084,24 @@ "setup": false, "team": "_meta" }, + { + "ability": "You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary.", + "edition": "experimental", + "firstNight": 48, + "firstNightReminder": "Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.", + "id": "shugenja", + "image": "[Your direct url here]", + "name": "Shugenja", + "otherNight": null, + "otherNightReminder": null, + "remote_image": "https://raw.githubusercontent.com/chizmw/json-on-the-clocktower/main/data/images/shugenja.png", + "setup": false, + "team": "townsfolk" + }, { "ability": "All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately.", "edition": "experimental", - "firstNight": 58, + "firstNight": 59, "firstNightReminder": "Announce 'The Vizier is in play' and state which player they are.", "id": "vizier", "name": "Vizier", @@ -6114,7 +6147,7 @@ { "ability": "Each night, learn which player the Storyteller believes you should talk to most.", "edition": "experimental", - "firstNight": 52, + "firstNight": 53, "firstNightReminder": "Point to a player.", "id": "highpriestess", "image": "your direct url here", @@ -6747,6 +6780,10 @@ "id": "cannibal", "name": "Cannibal" }, + { + "id": "shugenja", + "name": "Shugenja" + }, { "id": "highpriestess", "name": "High Priestess" From 6cc6114b0ab513d6028f873348a496af671a7108 Mon Sep 17 00:00:00 2001 From: Chisel Date: Tue, 3 Oct 2023 04:29:34 +0100 Subject: [PATCH 2/7] chore: don't use S3 hosting for 'dev' workspace --- terraform/s3-web-files.tf | 14 +++++++--- terraform/s3-web-workspaced.tf | 48 +++++++++++++++++++++++++++++++--- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/terraform/s3-web-files.tf b/terraform/s3-web-files.tf index 914890f2..34e45220 100644 --- a/terraform/s3-web-files.tf +++ b/terraform/s3-web-files.tf @@ -1,5 +1,10 @@ locals { - files = { + # a local to determine if our workspace is "prod" + is_prod = terraform.workspace == "prod" + + # set the_files to and empty map in the non-prod workspace + # and to a map of files in the prod workspace + files = local.is_prod ? { "index.html" = "text/html" "script.js" = "application/javascript" "custom.js" = "application/javascript" @@ -18,8 +23,7 @@ locals { "favicon/favicon-32x32.png" = "image/png" "favicon/favicon.ico" = "image/x-icon" "favicon/site.webmanifest" = "application/manifest+json" - - } + } : {} } resource "aws_s3_object" "wkspc_botc_www_files" { @@ -43,6 +47,10 @@ resource "aws_s3_object" "wkspc_botc_www_files" { # we need to create an s3 file/object (const.js) that contains the API Gateway # URL so that the web page can call the API Gateway resource "aws_s3_object" "botc_www_const_js" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? length(local.files) : 0 + depends_on = [ aws_s3_bucket_policy.wkspc_www_bucket_policy, aws_api_gateway_stage.api_stage, diff --git a/terraform/s3-web-workspaced.tf b/terraform/s3-web-workspaced.tf index 956dd528..22ea4ada 100644 --- a/terraform/s3-web-workspaced.tf +++ b/terraform/s3-web-workspaced.tf @@ -1,11 +1,19 @@ # a bucket for the $workspace files to be stored in resource "aws_s3_bucket" "wkspc_www_bucket" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? length(local.files) : 0 + bucket = "${local.site_name}.${var.www_bucket_name}" } resource "aws_s3_bucket_ownership_controls" "wkspc_www_bucket_ownership_controls" { - bucket = aws_s3_bucket.wkspc_www_bucket.id + + # only create objects if we are in the prod workspace + count = local.is_prod ? length(local.files) : 0 + + bucket = aws_s3_bucket.wkspc_www_bucket[count.index].id rule { object_ownership = "BucketOwnerPreferred" @@ -13,14 +21,22 @@ resource "aws_s3_bucket_ownership_controls" "wkspc_www_bucket_ownership_controls } resource "aws_s3_bucket_acl" "wkspc_www_bucket_acl" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + depends_on = [ aws_s3_bucket_ownership_controls.wkspc_www_bucket_ownership_controls, ] - bucket = aws_s3_bucket.wkspc_www_bucket.id + bucket = aws_s3_bucket.wkspc_www_bucket[count.index].id acl = "public-read" } resource "aws_s3_bucket_policy" "wkspc_www_bucket_policy" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + depends_on = [ aws_s3_bucket_acl.wkspc_www_bucket_acl, ] @@ -29,7 +45,11 @@ resource "aws_s3_bucket_policy" "wkspc_www_bucket_policy" { } resource "aws_s3_bucket_cors_configuration" "wkspc_www_bucket_cors" { - bucket = aws_s3_bucket.wkspc_www_bucket.id + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + + bucket = aws_s3_bucket.wkspc_www_bucket[count.index].id cors_rule { allowed_headers = ["Authorization", "Content-Length"] @@ -40,7 +60,11 @@ resource "aws_s3_bucket_cors_configuration" "wkspc_www_bucket_cors" { } resource "aws_s3_bucket_website_configuration" "wkspc_www_bucket_website" { - bucket = aws_s3_bucket.wkspc_www_bucket.id + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + + bucket = aws_s3_bucket.wkspc_www_bucket[count.index].id index_document { suffix = "index.html" @@ -53,6 +77,10 @@ resource "aws_s3_bucket_website_configuration" "wkspc_www_bucket_website" { resource "aws_cloudfront_distribution" "wkspc_www_s3_distribution" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + origin { domain_name = aws_s3_bucket.wkspc_www_bucket.bucket_regional_domain_name origin_id = "S3-${local.site_name}.${var.www_bucket_name}" @@ -114,6 +142,10 @@ resource "aws_cloudfront_distribution" "wkspc_www_s3_distribution" { # we don't want to have to manually invalidate the cache every time we update the site resource "aws_s3_bucket_notification" "bucket_notification" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? length(local.files) : 0 + bucket = aws_s3_bucket.wkspc_www_bucket.id lambda_function { @@ -126,6 +158,10 @@ resource "aws_s3_bucket_notification" "bucket_notification" { # Add permission for S3 bucket to trigger Lambda function resource "aws_lambda_permission" "allow_bucket" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? length(local.files) : 0 + statement_id = "AllowS3BucketToTriggerLambda-${local.site_name}-${terraform.workspace}" action = "lambda:InvokeFunction" function_name = data.aws_lambda_function.invalidate_cache.function_name @@ -135,6 +171,10 @@ resource "aws_lambda_permission" "allow_bucket" { # Add permission for S3 bucket to trigger Lambda function resource "aws_lambda_permission" "apigw_invoke_function" { + + # only create objects if we are in the prod workspace + count = local.is_prod ? 1 : 0 + statement_id = "AllowApiGatewayToInvokeFunction-${local.site_name}-${terraform.workspace}" action = "lambda:InvokeFunction" function_name = data.aws_lambda_function.api_render_pdf.function_name From 4a70c1510ae65daf9265eed176ebdf43f07b4caa Mon Sep 17 00:00:00 2001 From: Chisel Date: Wed, 4 Oct 2023 14:25:51 +0100 Subject: [PATCH 3/7] chore: remove r53 and s3 web files from terraform (now in Amplify) --- terraform/.envrc | 4 - terraform/_locals.tf | 2 +- terraform/r53.tf | 12 --- terraform/s3-web-files.tf | 66 ------------ terraform/s3-web-workspaced.tf | 183 --------------------------------- 5 files changed, 1 insertion(+), 266 deletions(-) delete mode 100644 terraform/.envrc diff --git a/terraform/.envrc b/terraform/.envrc deleted file mode 100644 index 0e48010c..00000000 --- a/terraform/.envrc +++ /dev/null @@ -1,4 +0,0 @@ -source /Users/chisel/development/github-as-chizmw/.envrc - -export TF_CLI_ARGS_init="-backend-config='encrypt=true' -backend-config='key=chizmw/botc-custom-script-json2pdf-436158765452-botc-json2pdf.tfstate' -backend-config='bucket=436158765452-terraform-state'" -export TF_CLI_ARGS_init="-backend-config='encrypt=true' -backend-config='key=chizmw/botc-custom-script-json2pdf-436158765452-botc-json2pdf.tfstate' -backend-config='bucket=436158765452-terraform-state'" diff --git a/terraform/_locals.tf b/terraform/_locals.tf index c3bf15ef..317031ff 100644 --- a/terraform/_locals.tf +++ b/terraform/_locals.tf @@ -15,7 +15,7 @@ locals { } # get the lookup value from the wkspc_site_name map based on the workspace name - site_name = lookup(local.wkspc_site_name, terraform.workspace) + #site_name = lookup(local.wkspc_site_name, terraform.workspace) } # used in "a new hope" apigateway diff --git a/terraform/r53.tf b/terraform/r53.tf index 3ace9dc4..261cd1ab 100644 --- a/terraform/r53.tf +++ b/terraform/r53.tf @@ -1,15 +1,3 @@ data "aws_route53_zone" "main" { name = var.www_domain_name } - -resource "aws_route53_record" "wkspc_www-a" { - zone_id = data.aws_route53_zone.main.zone_id - name = "${local.site_name}.${var.www_domain_name}" - type = "A" - - alias { - name = aws_cloudfront_distribution.wkspc_www_s3_distribution.domain_name - zone_id = aws_cloudfront_distribution.wkspc_www_s3_distribution.hosted_zone_id - evaluate_target_health = false - } -} diff --git a/terraform/s3-web-files.tf b/terraform/s3-web-files.tf index 34e45220..e69de29b 100644 --- a/terraform/s3-web-files.tf +++ b/terraform/s3-web-files.tf @@ -1,66 +0,0 @@ -locals { - # a local to determine if our workspace is "prod" - is_prod = terraform.workspace == "prod" - - # set the_files to and empty map in the non-prod workspace - # and to a map of files in the prod workspace - files = local.is_prod ? { - "index.html" = "text/html" - "script.js" = "application/javascript" - "custom.js" = "application/javascript" - "styles.css" = "text/css" - "images/storyteller.png" = "image/png" - "images/download.png" = "image/png" - "images/background.png" = "image/png" - "images/infobutton.png" = "image/png" - "dropzone.css" = "text/css" - - # favicon resources - "favicon/android-chrome-192x192.png" = "image/png" - "favicon/android-chrome-512x512.png" = "image/png" - "favicon/apple-touch-icon.png" = "image/png" - "favicon/favicon-16x16.png" = "image/png" - "favicon/favicon-32x32.png" = "image/png" - "favicon/favicon.ico" = "image/x-icon" - "favicon/site.webmanifest" = "application/manifest+json" - } : {} -} - -resource "aws_s3_object" "wkspc_botc_www_files" { - depends_on = [ - aws_s3_bucket_policy.wkspc_www_bucket_policy, - ] - for_each = local.files - - bucket = aws_s3_bucket.wkspc_www_bucket.id - key = each.key - source = "../www/${each.key}" - content_type = each.value - acl = "public-read" - etag = filemd5("../www/${each.key}") - - tags = { - "BelongsToDist" = aws_cloudfront_distribution.wkspc_www_s3_distribution.id - } -} - -# we need to create an s3 file/object (const.js) that contains the API Gateway -# URL so that the web page can call the API Gateway -resource "aws_s3_object" "botc_www_const_js" { - - # only create objects if we are in the prod workspace - count = local.is_prod ? length(local.files) : 0 - - depends_on = [ - aws_s3_bucket_policy.wkspc_www_bucket_policy, - aws_api_gateway_stage.api_stage, - ] - bucket = aws_s3_bucket.wkspc_www_bucket.id - key = "const.js" - content = < Date: Wed, 4 Oct 2023 14:39:29 +0100 Subject: [PATCH 4/7] chore: remove www-a output --- terraform/_outputs.tf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/terraform/_outputs.tf b/terraform/_outputs.tf index e530fcc7..cd2dcf26 100644 --- a/terraform/_outputs.tf +++ b/terraform/_outputs.tf @@ -18,8 +18,3 @@ output "stage_function_name" { output "stage_url" { value = aws_api_gateway_deployment.deployment.invoke_url } - - -output "www-a" { - value = aws_route53_record.wkspc_www-a.fqdn -} From af7e86fceb073114eb7691056903eb4a7020b709 Mon Sep 17 00:00:00 2001 From: Chisel Date: Mon, 9 Oct 2023 14:19:57 +0100 Subject: [PATCH 5/7] chore: trigger: terraform init -migrate-state --- .github/workflows/terraform-serverless-deploy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/terraform-serverless-deploy.yml b/.github/workflows/terraform-serverless-deploy.yml index 1851e876..cd311149 100644 --- a/.github/workflows/terraform-serverless-deploy.yml +++ b/.github/workflows/terraform-serverless-deploy.yml @@ -92,8 +92,9 @@ jobs: - name: Run terraform actions id: run-terraform-actions # yamllint disable-line rule:line-length - uses: chizmw/terraform-workflow-action@v1.0.1 + uses: chizmw/terraform-workflow-action@0e26f82a48deaaba701cbe2202cc74566b553990 with: + terraform-state-action: migrate-state # yamllint disable rule:line-length use-workspaces: true workspace: ${{ env.WORKSPACE }} From e0bf79e0262afbcaff005fb089a4a7d8cca131d8 Mon Sep 17 00:00:00 2001 From: Chisel Date: Mon, 9 Oct 2023 14:24:51 +0100 Subject: [PATCH 6/7] fixup! chore: trigger: terraform init -migrate-state --- .github/workflows/terraform-serverless-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/terraform-serverless-deploy.yml b/.github/workflows/terraform-serverless-deploy.yml index cd311149..38b59afe 100644 --- a/.github/workflows/terraform-serverless-deploy.yml +++ b/.github/workflows/terraform-serverless-deploy.yml @@ -92,7 +92,7 @@ jobs: - name: Run terraform actions id: run-terraform-actions # yamllint disable-line rule:line-length - uses: chizmw/terraform-workflow-action@0e26f82a48deaaba701cbe2202cc74566b553990 + uses: chizmw/terraform-workflow-action@9588f13744daad9fb5c9dace88ec4cec80fffa58 with: terraform-state-action: migrate-state # yamllint disable rule:line-length From 16187d1763883c4b87c8f690b1ba8b1ad6597613 Mon Sep 17 00:00:00 2001 From: Chisel Date: Mon, 9 Oct 2023 14:27:02 +0100 Subject: [PATCH 7/7] fixup! chore: trigger: terraform init -migrate-state --- .github/workflows/terraform-serverless-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/terraform-serverless-deploy.yml b/.github/workflows/terraform-serverless-deploy.yml index 38b59afe..39d02744 100644 --- a/.github/workflows/terraform-serverless-deploy.yml +++ b/.github/workflows/terraform-serverless-deploy.yml @@ -92,7 +92,7 @@ jobs: - name: Run terraform actions id: run-terraform-actions # yamllint disable-line rule:line-length - uses: chizmw/terraform-workflow-action@9588f13744daad9fb5c9dace88ec4cec80fffa58 + uses: chizmw/terraform-workflow-action@aa921af813536554ecba0798a8861b25b09e2547 with: terraform-state-action: migrate-state # yamllint disable rule:line-length