@@ -358,45 +358,103 @@ jobs:
358
358
files : package/*
359
359
360
360
deploy-testing :
361
+ strategy :
362
+ fail-fast : false
363
+ matrix :
364
+ environment : [ release-preprod ]
365
+ include :
366
+ - environment : release-preprod
367
+ environment_prefix : release
368
+ cardano_network : preprod
369
+ mithril_api_domain : api.mithril.network
370
+ mithril_protocol_parameters : |
371
+ {
372
+ k = 5
373
+ m = 100
374
+ phi_f = 0.65
375
+ }
376
+ mithril_signers : |
377
+ {
378
+ "1" = {
379
+ pool_id = "pool1zr907nmfsq5kalxdjju349nwg6f03lyfmcjfqcz52jf45gcgh03",
380
+ },
381
+ }
382
+ terraform_backend_bucket : hydra-terraform-admin
383
+ google_region : europe-west1
384
+ google_zone : europe-west1-b
385
+ google_machine_type : e2-highmem-2
386
+
361
387
runs-on : ubuntu-22.04
388
+
362
389
needs :
363
390
- docker-mithril
391
+
392
+ environment : ${{ matrix.environment }}
393
+
364
394
env :
365
- # Contains a JSON-formatted service account key
366
- GOOGLE_CREDENTIALS : ${{ secrets.GOOGLE_CREDENTIALS }}
367
- # Contains a RSA private key
368
- GCLOUD_PRIVATE_KEY : ${{ secrets.GCLOUD_PRIVATE_KEY }}
369
- GENESIS_SECRET_KEY : ${{ secrets.TEST_ONLY_GENESIS_SECRET_KEY }}
370
- BRANCH_NAME : ${{ github.head_ref || github.ref_name }}
395
+ GOOGLE_APPLICATION_CREDENTIALS : ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
396
+ GENESIS_SECRET_KEY : ${{ secrets.GENESIS_SECRET_KEY }}
397
+ GENESIS_VERIFICATION_KEY_URL : ${{ secrets.GENESIS_VERIFICATION_KEY_URL }}
371
398
372
399
defaults :
373
400
run :
374
401
working-directory : mithril-infra
375
402
376
403
steps :
404
+
377
405
- name : Checkout sources
378
406
uses : actions/checkout@v3
379
407
380
- - name : Get short SHA
381
- id : slug
382
- run : echo "sha8=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_OUTPUT
408
+ - name : Get Docker image id
409
+ run : echo "DOCKER_IMAGE_ID=${{ github.head_ref || github.ref_name }}-$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV
410
+
411
+ - name : Prepare service account credentials
412
+ run : |
413
+ echo '${{ env.GOOGLE_APPLICATION_CREDENTIALS}}' > ./google-application-credentials.json
414
+ chmod u+x ./assets/tools/google-credentials-public-key.sh
415
+ ./assets/tools/google-credentials-public-key.sh ./google-application-credentials.json ./assets/ssh_keys curry
416
+
417
+ - name : Prepare terraform variables
418
+ run : |
419
+ cat > ./env.variables.tfvars << EOF
420
+ environment_prefix = "${{ matrix.environment_prefix }}"
421
+ cardano_network = "${{ matrix.cardano_network }}"
422
+ google_region = "${{ matrix.google_region }}"
423
+ google_zone = "${{ matrix.google_zone }}"
424
+ google_machine_type = "${{ matrix.google_machine_type }}"
425
+ google_service_credentials_json_file = "./google-application-credentials.json"
426
+ mithril_api_domain = "${{ matrix.mithril_api_domain }}"
427
+ mithril_image_id = "${{ env.DOCKER_IMAGE_ID }}"
428
+ mithril_genesis_verification_key_url = "${{ env.GENESIS_VERIFICATION_KEY_URL }}"
429
+ mithril_genesis_secret_key = "${{ env.GENESIS_SECRET_KEY }}"
430
+ mithril_protocol_parameters = ${{ matrix.mithril_protocol_parameters }}
431
+ mithril_signers = ${{ matrix.mithril_signers }}
432
+ EOF
433
+ terraform fmt ./env.variables.tfvars
434
+ cat ./env.variables.tfvars
383
435
384
436
- name : Setup Terraform
385
437
uses : hashicorp/setup-terraform@v2
386
438
with :
387
439
terraform_wrapper : false
388
440
389
441
- name : Init Terraform
390
- run : terraform init
442
+ run : |
443
+ GOOGLE_APPLICATION_CREDENTIALS=./google-application-credentials.json terraform init -backend-config="bucket=${{ matrix.terraform_backend_bucket }}" -backend-config="prefix=terraform/mithril-${{ matrix.environment }}"
391
444
392
445
- name : Check Terraform
393
446
run : terraform fmt -check
394
447
395
448
- name : Terraform Plan
396
449
run : |
397
- terraform plan -var "image_id=${{ env.BRANCH_NAME }}-${{ steps.slug.outputs.sha8 }}" -var 'private_key=${{ env.GCLOUD_PRIVATE_KEY }}' -var 'google_application_credentials_json=${{ env.GOOGLE_CREDENTIALS }}' - var 'genesis_secret_key=${{ env.GENESIS_SECRET_KEY }}'
450
+ GOOGLE_APPLICATION_CREDENTIALS=./google-application-credentials.json terraform plan -- var-file=./ env.variables.tfvars
398
451
399
452
- name : Terraform Apply
400
453
if : github.ref == 'refs/heads/main'
401
454
run : |
402
- terraform apply -auto-approve -var "image_id=${{ env.BRANCH_NAME }}-${{ steps.slug.outputs.sha8 }}" -var 'private_key=${{ env.GCLOUD_PRIVATE_KEY }}' -var 'google_application_credentials_json=${{ env.GOOGLE_CREDENTIALS }}' -var 'genesis_secret_key=${{ env.GENESIS_SECRET_KEY }}'
455
+ GOOGLE_APPLICATION_CREDENTIALS=./google-application-credentials.json terraform apply -auto-approve --var-file=./env.variables.tfvars
456
+
457
+ - name : Cleanup
458
+ run : |
459
+ rm -f ./env.variables.tfvars
460
+ rm -f ./google-application-credentials.json
0 commit comments