name: Test Docker images on: push: branches: [main] paths: - "docker/**" - "poetry.lock" - "pyproject.toml" - "src/backend/**" - ".github/workflows/docker_test.yml" pull_request: branches: [dev] paths: - "docker/**" - "poetry.lock" - "pyproject.toml" - "src/**" - ".github/workflows/docker_test.yml" env: POETRY_VERSION: "1.8.2" jobs: test-docker: runs-on: ubuntu-latest name: Test docker images steps: - uses: actions/checkout@v4 - name: Build image run: | docker build -t langflowai/langflow:latest-dev \ -f docker/build_and_push.Dockerfile \ . - name: Test image run: | expected_version=$(cat pyproject.toml | grep version | head -n 1 | cut -d '"' -f 2) version=$(docker run --rm --entrypoint bash langflowai/langflow:latest-dev -c "python -c 'from langflow.utils.version import get_version_info; print(get_version_info()[\"version\"])'") if [ "$expected_version" != "$version" ]; then echo "Expected version: $expected_version" echo "Actual version: $version" exit 1 fi - name: Build backend image run: | docker build -t langflowai/langflow-backend:latest-dev \ --build-arg LANGFLOW_IMAGE=langflowai/langflow:latest-dev \ -f docker/build_and_push_backend.Dockerfile \ . - name: Test backend image run: | expected_version=$(cat pyproject.toml | grep version | head -n 1 | cut -d '"' -f 2) version=$(docker run --rm --entrypoint bash langflowai/langflow-backend:latest-dev -c "python -c 'from langflow.utils.version import get_version_info; print(get_version_info()[\"version\"])'") if [ "$expected_version" != "$version" ]; then echo "Expected version: $expected_version" echo "Actual version: $version" exit 1 fi - name: Build frontend image run: | docker build -t langflowai/langflow-frontend:latest-dev \ -f docker/frontend/build_and_push_frontend.Dockerfile \ .