name: Deploy to ECR and Run Docker Compose with AWS Actions for GitHub and Docker Buildx on: push: branches: - main - feat/framework-setup jobs: deploy: runs-on: self-hosted steps: - name: Checkout repository uses: actions/checkout@v4 - 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 }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - name: Log in to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Build, tag, and push docker image to Amazon ECR env: POSTGRES_DB: ${{ secrets.POSTGRES_DB }} POSTGRES_USER: ${{ secrets.POSTGRES_USER }} POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} REDIS_PORT: ${{ secrets.REDIS_PORT }} REDIS_HOST: ${{ secrets.REDIS_HOST }} FLOWER_BASIC_AUTH: ${{ secrets.FLOWER_BASIC_AUTH }} REDIS_URL: ${{ secrets.REDIS_URL }} DATABASE_URL: ${{ secrets.DATABASE_URL }} BROKER_URL: ${{ secrets.BROKER_URL }} REGISTRY: ${{ steps.login-ecr.outputs.registry }} REPOSITORY: soutrik71/test IMAGE_TAG: ${{ github.sha }} run: | docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG . docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG - name: Run Docker Compose env: POSTGRES_DB: ${{ secrets.POSTGRES_DB }} POSTGRES_USER: ${{ secrets.POSTGRES_USER }} POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} REDIS_PORT: ${{ secrets.REDIS_PORT }} REDIS_HOST: ${{ secrets.REDIS_HOST }} FLOWER_BASIC_AUTH: ${{ secrets.FLOWER_BASIC_AUTH }} REDIS_URL: ${{ secrets.REDIS_URL }} DATABASE_URL: ${{ secrets.DATABASE_URL }} BROKER_URL: ${{ secrets.BROKER_URL }} run: | docker-compose up -d --build app