Skip to content

Docker Build and Push to AWS Marketplace #40

Docker Build and Push to AWS Marketplace

Docker Build and Push to AWS Marketplace #40

name: Docker Build and Push to AWS Marketplace
on:
workflow_dispatch:
inputs:
image_tag:
description: 'This will submit a new version of the listing in AWS Marketplace.Image tag for the ECR liquibase/liquibasepro.'
required: true
default: '' # Pass the value like 1.0.0
pull_request:
branches:
- main
types:
- closed
paths:
- 'Dockerfile'
jobs:
build:
if: github.actor == 'dependabot'
runs-on:
ubuntu-latest
env:
AWS_REGION: us-east-1
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to ECR Registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.AWS_MP_REGISTRY }}
username: ${{ secrets.AWS_MP_ACCESS_KEY }}
password: ${{ secrets.AWS_MP_ACCESS_KEY_ID }}
- name: Get latest liquibase docker tag
id: get_latest_tag
run: |
LATEST_TAG=$(grep -i "^FROM liquibase/liquibase:" Dockerfile | cut -d: -f2)
echo "LATEST_TAG=$LATEST_TAG"
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_OUTPUT
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_MP_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_MP_ACCESS_KEY_ID }}
aws-region: us-east-1
- name: Build Docker image
run: docker build -t ${{ secrets.AWS_MP_REGISTRY }}/${{ secrets.ECR_REPOSITORY }}:${{ steps.get_latest_tag.outputs.LATEST_TAG }} .
- name: Push to Docker AWS MP
run: docker push ${{ secrets.AWS_MP_REGISTRY }}/${{ secrets.ECR_REPOSITORY }}:${{ steps.get_latest_tag.outputs.LATEST_TAG }}
- name: Submit Request for AWS MP Listing
env:
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }}
IMAGE_TAG: ${{ steps.get_latest_tag.outputs.LATEST_TAG }}
PRODUCT_ID: ${{ secrets.PRODUCT_ID }}
AWS_MP_REGISTRY: ${{ secrets.AWS_MP_REGISTRY }}
run: |
chmod +x ./.github/utils/submit-aws-mp-listing.sh
./.github/utils/submit-aws-mp-listing.sh
dry-run:
if: github.event_name == 'workflow_dispatch'
runs-on:
ubuntu-latest
env:
AWS_REGION: us-east-1
DRY_RUN: "true"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to ECR Registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.AWS_MP_REGISTRY }}
username: ${{ secrets.AWS_MP_ACCESS_KEY }}
password: ${{ secrets.AWS_MP_ACCESS_KEY_ID }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_MP_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_MP_ACCESS_KEY_ID }}
aws-region: us-east-1
- name: Build Docker image
run: docker build -t ${{ secrets.AWS_MP_REGISTRY }}/${{ secrets.ECR_REPOSITORY }}:${{ github.event.inputs.image_tag }} .
- name: Push to Docker AWS MP
run: docker push ${{ secrets.AWS_MP_REGISTRY }}/${{ secrets.ECR_REPOSITORY }}:${{ github.event.inputs.image_tag }}
continue-on-error: true
- name: Submit New Version Request for AWS MP Listing
env:
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }}
IMAGE_TAG: ${{ github.event.inputs.image_tag }}
PRODUCT_ID: ${{ secrets.PRODUCT_ID }}
AWS_MP_REGISTRY: ${{ secrets.AWS_MP_REGISTRY }}
DRY_RUN: "true"
run: |
chmod +x ./.github/utils/submit-aws-mp-listing.sh
./.github/utils/submit-aws-mp-listing.sh