Skip to content

ci: add Docker build workflow for PR checks #1

ci: add Docker build workflow for PR checks

ci: add Docker build workflow for PR checks #1

name: Docker Build Check
on:
pull_request:
branches:
- main
jobs:
docker-build-check:
name: Docker Build Check
runs-on: ubuntu-22.04
permissions:
contents: write # Required for creating commit statuses
pull-requests: read
steps:
# Create initial pending status for build check
- name: Create Pending Build Status
env:
GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
run: |
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
repos/${{ github.repository }}/statuses/$HEAD_SHA \
-f state="pending" \
-f description="Building SDM Docker image..." \
-f context="SDM Docker Image Build"
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU for multi-platform builds
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image for multiple platforms
id: docker-build
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: false
tags: airbyte/source-declarative-manifest:pr-${{ github.event.pull_request.number }}
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=SDM Docker image for PR ${{ github.event.pull_request.number }}
- name: Update Build Status on Success
if: success()
env:
GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
run: |
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
repos/${{ github.repository }}/statuses/$HEAD_SHA \
-f state="success" \
-f description="SDM Docker image builds successfully" \
-f context="SDM Docker Image Build"
- name: Update Build Status on Failure
if: failure()
env:
GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
run: |
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
repos/${{ github.repository }}/statuses/$HEAD_SHA \
-f state="failure" \
-f description="SDM Docker image is broken" \
-f context="SDM Docker Image Build"