940bf6722c
* Add Docker runner * Add Docker client * Add benchgraph.sh script * Add package script
64 lines
2.0 KiB
YAML
64 lines
2.0 KiB
YAML
name: "Mgbench Bolt Client Publish Docker Image"
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Mgbench bolt client version to publish on Dockerhub."
|
|
required: true
|
|
force_release:
|
|
type: boolean
|
|
required: false
|
|
default: false
|
|
|
|
jobs:
|
|
mgbench_docker_publish:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DOCKER_ORGANIZATION_NAME: memgraph
|
|
DOCKER_REPOSITORY_NAME: mgbench-client
|
|
|
|
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: 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 tests/mgbench
|
|
docker buildx build \
|
|
--build-arg TOOLCHAIN_VERSION=toolchain-v4 \
|
|
--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 Dockerfile.mgbench_client \
|
|
--push .
|