Skip to content

add github action to build docker images #1

add github action to build docker images

add github action to build docker images #1

name: build and push docker
on:
push:
tags:
- 'v*.*.*'
branches:
- 218-create-docker-image
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Decide the docker image version number
run: |
if [[ -f ./docker/build-docker-image-version.txt ]]; then
echo "DOCKER_IMAGE_TAG=$( tail -n 1 ./docker/build-docker-image-version.txt )" >> $GITHUB_ENV
else
echo "DOCKER_IMAGE_TAG=${{ github.ref_name }}" >> $GITHUB_ENV
fi
echo ${{ env.DOCKER_IMAGE_TAG }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push gplately amd64
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/Dockerfile
push: true
platforms: linux/amd64
provenance: false
tags: |
gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }}
ghcr.io/gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }}
-
name: Build and push gplately arm64
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/Dockerfile
push: true
platforms: linux/arm64
provenance: false
tags: |
gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
ghcr.io/gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
-
name: Create cross-platform images
run: |
docker buildx imagetools create -t gplates/gplately:${{ env.DOCKER_IMAGE_TAG }} gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }} gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
docker buildx imagetools create -t ghcr.io/gplates/gplately:${{ env.DOCKER_IMAGE_TAG }} ghcr.io/gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }} ghcr.io/gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
-
name: Create the latest tags
if:
run: |
if [[ -f build-docker-images.txt ]]; then
docker buildx imagetools create -t gplates/gplately:latest gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }} gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
docker buildx imagetools create -t ghcr.io/gplates/gplately:latest ghcr.io/gplates/gplately:amd64-${{ env.DOCKER_IMAGE_TAG }} ghcr.io/gplates/gplately:arm64-${{ env.DOCKER_IMAGE_TAG }}
fi