70 lines
2.4 KiB
YAML
70 lines
2.4 KiB
YAML
name: Publish Docker images
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Memgraph binary version to publish on DockerHub."
|
|
required: true
|
|
force_release:
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
|
|
jobs:
|
|
docker_publish:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DOCKER_ORGANIZATION_NAME: memgraph
|
|
DOCKER_REPOSITORY_NAME: memgraph
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Log in to Docker Hub
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Download memgraph binary
|
|
run: |
|
|
cd release/docker
|
|
curl -L https://download.memgraph.com/memgraph/v${{ github.event.inputs.version }}/debian-11/memgraph_${{ github.event.inputs.version }}-1_amd64.deb > memgraph-amd64.deb
|
|
curl -L https://download.memgraph.com/memgraph/v${{ github.event.inputs.version }}/debian-11-aarch64/memgraph_${{ github.event.inputs.version }}-1_arm64.deb > memgraph-arm64.deb
|
|
|
|
- name: Check if specified version is already pushed
|
|
run: |
|
|
EXISTS=$(docker manifest inspect $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:${{ github.event.inputs.version }} > /dev/null; echo $?)
|
|
echo $EXISTS
|
|
if [[ ${EXISTS} -eq 0 ]]; then
|
|
echo 'The specified version has been already released to DockerHub.'
|
|
if [[ ${{ github.event.inputs.force_release }} = true ]]; then
|
|
echo 'Forcing the release!'
|
|
else
|
|
echo 'Stopping the release!'
|
|
exit 1
|
|
fi
|
|
else
|
|
echo 'All good the specified version has not been release to DockerHub.'
|
|
fi
|
|
|
|
- name: Build & push docker images
|
|
run: |
|
|
cd release/docker
|
|
docker buildx build \
|
|
--build-arg BINARY_NAME="memgraph-" \
|
|
--build-arg EXTENSION="deb" \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--tag $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:${{ github.event.inputs.version }} \
|
|
--tag $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:latest \
|
|
--file memgraph_deb.dockerfile \
|
|
--push .
|