FILES_COMMITTED=$(git diff --name-only HEAD^) IMAGES_COMMITTED=$(echo "$FILES_COMMITTED" | grep -E "^.*\.dockerfile$") REPOSITORY="hub.codefirst.iut.uca.fr/maxime.batista/codefirst-docdeployer" push_image() ({ local IMAGE_NAME=$(basename "$1" | rev | cut -d . -f2- | rev) cd "$(dirname "$1")" docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" "$REPOSITORY" echo "Building $IMAGE_NAME..." docker build "$(basename "$1")" docker tag "$IMAGE_NAME" "$REPOSITORY/$IMAGE_NAME:latest" echo "Pushing $IMAGE_NAME..." docker push "$REPOSITORY/$IMAGE_NAME" }) echo $IMAGES_COMMITTED for IMAGE in $IMAGES_COMMITTED; do push_image "$IMAGE" done