deploy_nonProd #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy_nonProd | |
on: | |
workflow_dispatch: | |
branches: | |
- feature/* | |
- release/* | |
- hotfix/* | |
- develop | |
inputs: | |
validator: | |
required: true | |
description: 'Please select env you want to deploy the version' | |
default: dev | |
type: choice | |
options: | |
- dev | |
- sbx | |
jobs: | |
build_local: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Configure AWS Credentials to SBX | |
uses: aws-actions/configure-aws-credentials@v4 | |
if: inputs.validator == 'sbx' | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_NONPROD }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_NONPROD }} | |
aws-region: ${{ secrets.AWS_REGION_NONPROD }} | |
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_NONPROD }}:role/Developers | |
role-skip-session-tagging: true | |
role-duration-seconds: 1800 | |
- name: Configure AWS Kubeconfig Credentials to SBX | |
if: inputs.validator == 'sbx' | |
run: | | |
aws --region ${{ secrets.AWS_REGION_NONPROD }} eks update-kubeconfig --kubeconfig ~/.kube/config-staging --name ${{ secrets.CLUSTER_NAME_NONPROD }} | |
- name: Get sbx image tag | |
id: sbx_tag | |
if: inputs.validator == 'sbx' | |
run: | | |
export SBX_TAG=$(kubectl --kubeconfig ~/.kube/config-staging get deployments -n sandbox sanctuary-api-bsc01 -o=jsonpath='{$$.spec.template.spec.containers[:1].image}' | awk -F':' '{print $2}') | |
echo "The tag is: $SBX_TAG" | |
echo "tag=$SBX_TAG" >> $GITHUB_OUTPUT | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_ECR }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_ECR }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: Log in to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Extract Docker-image params | |
id: docker-params | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
run: | | |
export IMAGE="$ECR_REGISTRY/sanctuary" | |
echo "image=$IMAGE" >> $GITHUB_OUTPUT | |
- name: Build and push to develop1 | |
uses: docker/build-push-action@v6 | |
if: inputs.validator == 'dev' | |
with: | |
context: . | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: | | |
${{ steps.docker-params.outputs.image }}:develop | |
- name: Build and push to sbx | |
uses: docker/build-push-action@v6 | |
if: inputs.validator == 'sbx' | |
with: | |
context: . | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
push: true | |
tags: | | |
${{ steps.docker-params.outputs.image }}:${{ steps.sbx_tag.outputs.tag }} | |
- name: Log out of Amazon ECR | |
if: always() | |
run: docker logout ${{ steps.login-ecr.outputs.registry }} | |
restart_deployments: | |
runs-on: ubuntu-latest | |
needs: build_local | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Configure AWS Credentials to non-prod | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_NONPROD }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_NONPROD }} | |
aws-region: ${{ secrets.AWS_REGION_NONPROD }} | |
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_NONPROD }}:role/Developers | |
role-skip-session-tagging: true | |
role-duration-seconds: 1800 | |
- name: Configure AWS Kubeconfig Credentials to non_prod | |
run: | | |
aws --region ${{ secrets.AWS_REGION_NONPROD }} eks update-kubeconfig --kubeconfig ~/.kube/config-staging --name ${{ secrets.CLUSTER_NAME_NONPROD }} | |
- name: Restart deployments to take last Image | |
run: | | |
if [ "${{ inputs.validator }}" == "dev" ]; then | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-api-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-api-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-foreign-chain-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-foreign-chain-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-metrics-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-metrics-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-resolver-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-resolver-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-sync-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-sync-worker-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-scheduler-bsc01 -n dev | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-scheduler-bsc01 -n dev | |
fi | |
if [ "${{ inputs.validator }}" == "sbx" ]; then | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-api-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-api-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-foreign-chain-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-foreign-chain-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-metrics-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-metrics-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-resolver-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-resolver-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-sync-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-sync-worker-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=0 deployment/sanctuary-scheduler-bsc01 -n sandbox | |
kubectl --kubeconfig ~/.kube/config-staging scale --replicas=1 deployment/sanctuary-scheduler-bsc01 -n sandbox | |
fi |