Skip to content

add flyway build workflow #1

add flyway build workflow

add flyway build workflow #1

#This is a basic workflow to help you get started with Actions
name: Build Airflow Image, Push to AWS Dev ECR
# Controls when the action will run. Invokes the workflow on push events but only for the main branch
on:
push:
branches: [cwbi-dev]
paths:
- .github/workflows/cwbi-dev-ecr-push.yml
- _docker/airflow/Dockerfile
env:
AWS_REGION: aws-us-gov #Change to reflect your Region
# Permission can be added at job level or workflow level
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
jobs:
Build-Push-Airflow-to-Dev:
runs-on: ubuntu-latest
steps:
- name: Git clone the repository
uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-gov-west-1
role-to-assume: arn:aws-us-gov:iam::718787032875:role/github-actions-ecr-airflow1
output-credentials: true
# Hello from AWS: WhoAmI
- name: Sts GetCallerIdentity
run: |
aws sts get-caller-identity
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
with:
mask-password: 'true'
- name: Build Image; Push to ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: wmes-airflow
IMAGE_TAG: 2.9.0-python3.8-sqs
run: |
docker build _docker/airflow \
--build-arg AIRFLOW_VERSION="2.9.0" \
--build-arg PYTHON_BASE_IMAGE="python:3.11-slim-bookworm" \
--build-arg ADDITIONAL_DEV_APT_DEPS="libcurl4-openssl-dev libssl-dev" \
--build-arg ADDITIONAL_PYTHON_DEPS="celery[sqs] celery[redis]" \
--build-arg INSTALL_MYSQL_CLIENT="false" \
--tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \
--tag $ECR_REGISTRY/$ECR_REPOSITORY:dev
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker push $ECR_REGISTRY/$ECR_REPOSITORY:dev
- name: ECR Logout
if: always()
run: docker logout ${{ steps.login-ecr.outputs.registry }}