feat: Adding DALLE image generator (#8448) #2438
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker image release | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
tags: | |
- "v2.[0-9]+.[0-9]+*" | |
env: | |
DOCKER_REPO_NAME: deepset/haystack | |
jobs: | |
build-and-push: | |
name: Build base image | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'deepset-ai' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: $DOCKER_REPO_NAME | |
- name: Build base images | |
uses: docker/bake-action@v5 | |
env: | |
IMAGE_TAG_SUFFIX: ${{ steps.meta.outputs.version }} | |
HAYSTACK_VERSION: ${{ steps.meta.outputs.version }} | |
with: | |
workdir: docker | |
targets: base | |
push: true | |
- name: Test base image | |
run: | | |
EXPECTED_VERSION=$(cat VERSION.txt) | |
if [[ $EXPECTED_VERSION == *"-"* ]]; then | |
EXPECTED_VERSION=$(cut -d '-' -f 1 < VERSION.txt)$(cut -d '-' -f 2 < VERSION.txt) | |
fi | |
TAG="base-${{ steps.meta.outputs.version }}" | |
PLATFORM="linux/amd64" | |
VERSION=$(docker run --platform "$PLATFORM" --rm "deepset/haystack:$TAG" python -c"from haystack.version import __version__; print(__version__)") | |
[[ "$VERSION" = "$EXPECTED_VERSION" ]] || echo "::error 'Haystack version in deepset/haystack:$TAG image for $PLATFORM is different from expected'" | |
PLATFORM="linux/arm64" | |
VERSION=$(docker run --platform "$PLATFORM" --rm "deepset/haystack:$TAG" python -c"from haystack.version import __version__; print(__version__)") | |
[[ "$VERSION" = "$EXPECTED_VERSION" ]] || echo "::error 'Haystack version in deepset/haystack:$TAG image for $PLATFORM is different from expected'" | |
# Remove image after test to avoid filling the GitHub runner and prevent its failure | |
docker rmi "deepset/haystack:$TAG" |