name: Concrete Python Push Docker Image
on:
  workflow_dispatch:
    inputs:
      tag:
        description: 'tag to use for the docker image'
        type: string
  workflow_call:
    inputs:
      tag:
        description: 'tag to use for the docker image'
        type: string

env:
  DOCKER_IMAGE_NAME: zamafhe/concrete-python:${{ inputs.tag }}
  DOCKER_FILE: docker/Dockerfile.concrete-python

jobs:
  build_and_push:
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Get version from tag
        run: |
          # remove leading 'v' and '-' from tag
          export VERSION=`echo ${{ inputs.tag }} | sed "s/^v//g" | sed "s/-//g"`
          echo "VERSION=$VERSION" >> "${GITHUB_ENV}"

      - name: Build image
        run: |
          mkdir empty_context
          docker image build -t ${{ env.DOCKER_IMAGE_NAME }} --build-arg version=${{ env.VERSION }} -f ${{ env.DOCKER_FILE }} empty_context

      - name: Login to Docker Hub
        uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Push image
        run: docker image push ${{ env.DOCKER_IMAGE_NAME }}
