51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
name: build | Build and Push Docker Image to DockerHub
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
docker-build-and-push:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Log in to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Extract Git information
|
|
id: git-info
|
|
run: |
|
|
echo "BRANCH_NAME=${GITHUB_REF_NAME}" >> "$GITHUB_ENV"
|
|
echo "COMMIT_SHA=${GITHUB_SHA::7}" >> "$GITHUB_ENV"
|
|
|
|
- name: Build and Push Docker Image
|
|
run: |
|
|
IMAGE_NAME=cognee/cognee
|
|
TAG_VERSION="${BRANCH_NAME}-${COMMIT_SHA}"
|
|
|
|
echo "Building image: ${IMAGE_NAME}:${TAG_VERSION}"
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
--tag "${IMAGE_NAME}:${TAG_VERSION}" \
|
|
--tag "${IMAGE_NAME}:latest" \
|
|
.
|
|
|
|
- name: Verify pushed Docker images
|
|
run: |
|
|
# Verify both platform variants
|
|
for PLATFORM in "linux/amd64" "linux/arm64"; do
|
|
echo "Verifying image for $PLATFORM..."
|
|
docker buildx imagetools inspect "${IMAGE_NAME}:${TAG_VERSION}" --format "{{.Manifest.$PLATFORM.Digest}}"
|
|
done
|
|
echo "Successfully verified images in Docker Hub"
|