Feature/add sm2a to veda pipeline #925
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: CICD 🚀 | |
permissions: | |
id-token: write | |
contents: read | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
- production | |
pull_request: | |
branches: | |
- main | |
- dev | |
- production | |
types: [ opened, reopened, edited, synchronize ] | |
jobs: | |
gitflow-enforcer: | |
name: GitFlow Enforcer 👮 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check branch | |
if: github.base_ref == 'main' && github.head_ref != 'dev' || github.base_ref == 'production' && github.head_ref != 'main' | |
run: | | |
echo "ERROR: You can only merge to main from dev and to production from main" | |
exit 1 | |
define-environment: | |
name: Set ✨ environment ✨ | |
needs: gitflow-enforcer | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set the environment based on the branch | |
id: define_environment | |
run: | | |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then | |
echo "env_name=staging" >> $GITHUB_OUTPUT | |
elif [ "${{ github.ref }}" = "refs/heads/dev" ]; then | |
echo "env_name=development" >> $GITHUB_OUTPUT | |
elif [ "${{ github.ref }}" = "refs/heads/production" ]; then | |
echo "env_name=production" >> $GITHUB_OUTPUT | |
fi | |
- name: Print the environment | |
run: echo "The environment is ${{ steps.define_environment.outputs.env_name }}" | |
outputs: | |
env_name: ${{ steps.define_environment.outputs.env_name }} | |
deploy: | |
name: Deploy to ${{ needs.define-environment.outputs.env_name }} 🚀 | |
runs-on: ubuntu-latest | |
if: ${{ needs.define-environment.outputs.env_name }} | |
needs: [gitflow-enforcer, define-environment] | |
environment: ${{ needs.define-environment.outputs.env_name }} | |
concurrency: ${{ needs.define-environment.outputs.env_name }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: "true" | |
submodules: "recursive" | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
role-to-assume: ${{ secrets.DEPLOYMENT_ROLE_ARN }} | |
role-session-name: "veda-airflow-github-${{ needs.define-environment.outputs.env_name }}-deployment" | |
aws-region: us-west-2 | |
- name: Run MWAA deployment | |
uses: "./.github/actions/terraform-deploy" | |
with: | |
env_aws_secret_name: ${{ secrets.ENV_AWS_SECRET_NAME }} | |
- name: Run SM2A deployment | |
# Flag to deploy SM2A | |
if: ${{ vars.DEPLOY_SM2A }} = "true" | |
uses: "./.github/actions/terraform-deploy-sm2a" | |
with: | |
dir: ./sm2a | |
env_aws_secret_name: ${{ vars.SM2A_ENVS_DEPLOYMENT_SECRET_NAME }} | |
env-file: .env | |
aws-region: us-west-2 |