Skip to content

Merge branch 'fix-private-key-for-ec2-setup-on-ci' into staging #9

Merge branch 'fix-private-key-for-ec2-setup-on-ci' into staging

Merge branch 'fix-private-key-for-ec2-setup-on-ci' into staging #9

name: Continuos Deployment Action Staging
on:
push:
branches:
- staging
paths-ignore:
- "terraform/rollback"
- "terraform/staging/rollback"
- "rollback-staging.txt"
- "terraform/rollback_last_deployment.sh"
- ".github/workflows/rollback_last_deployment_staging.yml"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_PLAY_DEVOPS }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_PLAY_DEVOPS }}
AWS_REGION: "eu-west-2"
TF_VAR_project: "blockchain-indexer"
TF_VAR_region: "eu-west-2"
defaults:
run:
shell: bash
jobs:
deploy:
runs-on: ubuntu-latest
environment: staging
# environment: xxxx can we set this? Is this useful?
env:
ETHEREUM_PEM: ${{ secrets.ETHEREUM_PEM }}
ENVIRONMENT: staging
TF_VAR_environment: staging
TF_VAR_gf_security_admin_user: "${{ secrets.GF_SECURITY_ADMIN_USER }}"
TF_VAR_gf_security_admin_password: "${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}"
TF_VAR_prometheus_admin_password: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD }}"
# TF_VAR_prometheus_admin_password_bcrypted: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD_BCRYPTED }}"
# TF_VAR_prometheus_admin_password_bcrypted: "dummy bcrypted passwordd"
steps:
# -------------------
- name: Checkout code
uses: actions/checkout@v4
# ------------------------------------
- name: Install Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.13.1
terraform_wrapper: false
# ---------------------
- name: Terraform init
run: |
cd terraform
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
cd ${{ env.ENVIRONMENT }}
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
unset AWS_PROFILE
terraform init
- name: private key for ec2 access
run: echo '${{ env.ETHEREUM_PEM }}' > ./terraform/${{ env.ENVIRONMENT }}/ethereum.pem
# ---------------------
- name: Terraform plan
run: |
cd terraform
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
cd ${{ env.ENVIRONMENT }}
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
unset AWS_PROFILE
terraform plan -out planfile
# ---------------------
- name: Terraform apply
run: |
cd terraform
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
cd ${{ env.ENVIRONMENT }}
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
. ./.envrc.good
unset AWS_PROFILE
terraform apply -input=false planfile
# --------------------------------------------------------------------------------------
# - name: Post Deploy - Test Service for Server has Correct Task Definition Deployed
# run: |
# cd terraform
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
# . ./.envrc.good
# cd ${{ env.ENVIRONMENT }}
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
# . ./.envrc.good
# unset AWS_PROFILE
# export ECS_CLUSTER_NAME_SERVER=$(terraform output -raw error_logs_server_cluster_name)
# export ECS_SERVICE_NAME_SERVER=$(terraform output -raw error_logs_server_service_name)
# export ECS_TASK_DEFINITION_SERVER=$(terraform output -raw error_logs_server_task_definition_revision)
# ../test_deployed_task_definitions.sh "${AWS_REGION}" "${ECS_CLUSTER_NAME_SERVER}" "${ECS_SERVICE_NAME_SERVER}" "${ECS_TASK_DEFINITION_SERVER}"