Skip to content

[docs] Document durable reconciler usage #1562

[docs] Document durable reconciler usage

[docs] Document durable reconciler usage #1562

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Flink Agents CI
on:
push:
branches: [ main, 'release-*' ]
pull_request:
branches: [ main, 'release-*' ]
workflow_dispatch:
jobs:
lint:
name: Code Style Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check License Header
run: tools/check-license.sh
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Check code style
run: ./tools/lint.sh -c
build_backend_tests:
name: ut-build-backend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Run build-backend tests
working-directory: python
run: |
uv sync --extra test
PYTHONPATH="${PWD}" uv run --no-sync pytest _build_backend/tests \
-o log_cli=true \
-o log_cli_level=INFO
java_tests:
name: ut-java [${{ matrix.os }}] [java-${{ matrix.java-version}}] [python-3.12]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ 'macos-latest', 'ubuntu-latest' ]
java-version: ["11", "17", "21"]
steps:
- uses: actions/checkout@v4
- name: Install java
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'adopt'
- name: Install python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install Python dependencies for MCP tests
run: |
cd python
uv sync --all-extras
- name: Run Java Tests
env:
LOG_LEVEL: INFO
run: |
# Add Python venv to PATH so Java tests can find MCP dependencies
export PATH="${{ github.workspace }}/python/.venv/bin:$PATH"
export PYTHONPATH="${{ github.workspace }}/python/.venv/lib/python3.11/site-packages:$PYTHONPATH"
tools/ut.sh -j
python_tests:
name: ut-python [${{ matrix.os }}] [java-17] [python-${{ matrix.python-version}}]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ 'macos-latest', 'ubuntu-latest' ]
python-version: [ '3.10', '3.11', '3.12' ]
steps:
- uses: actions/checkout@v4
- name: Install java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Install python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Run Python Tests
env:
LOG_LEVEL: INFO
run: tools/ut.sh -p
python_it_tests:
name: it-python [${{ matrix.os }}] [java-17] [python-${{ matrix.python-version}}] [flink-${{ matrix.flink-version}}]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: 'ubuntu-latest'
python-version: '3.11'
flink-version: "1.20"
- os: 'ubuntu-latest'
python-version: '3.11'
flink-version: "2.0"
- os: 'ubuntu-latest'
python-version: '3.12'
flink-version: "2.1"
- os: 'ubuntu-latest'
python-version: '3.12'
flink-version: "2.2"
steps:
- uses: actions/checkout@v4
- name: Install java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Install python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install flink-agents
run: bash tools/build.sh
- name: Install ollama
run: bash tools/start_ollama_server.sh
- name: Run Python IT
run: tools/ut.sh -p -e -f ${{ matrix.flink-version }}
java_it_tests:
name: it-java [${{ matrix.os }}] [java-${{ matrix.java-version}}] [flink-${{ matrix.flink-version}}]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: 'ubuntu-latest'
java-version: "17"
flink-version: "1.20"
- os: 'ubuntu-latest'
java-version: "21"
flink-version: "2.0"
- os: 'ubuntu-latest'
java-version: "21"
flink-version: "2.1"
- os: 'ubuntu-latest'
java-version: "21"
flink-version: "2.2"
steps:
- uses: actions/checkout@v4
- name: Install java
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'adopt'
- name: Install flink-agents Java
run: bash tools/build.sh -j
- name: Install ollama
run: bash tools/start_ollama_server.sh
- name: Run Java IT
env:
LOG_LEVEL: INFO
run: tools/ut.sh -j -e -f ${{ matrix.flink-version }}
cross_language_tests:
name: cross-language [${{ matrix.os }}] [python-${{ matrix.python-version}}] [java-${{ matrix.java-version}}]
runs-on: ${{ matrix.os }}
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.19.0
env:
discovery.type: single-node
xpack.security.enabled: false
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
ports:
- 9200:9200
options: >-
--health-cmd "curl -f http://localhost:9200/_cluster/health || exit 1"
--health-interval 10s
--health-timeout 5s
--health-retries 10
--health-start-period 30s
strategy:
fail-fast: false
matrix:
os: [ 'ubuntu-latest' ]
python-version: [ '3.12' ]
java-version: [ '21' ]
steps:
- uses: actions/checkout@v4
# Free disk space to ensure Elasticsearch has sufficient space for indexing operations
# This step removes unnecessary pre-installed tools (~30GB) to prevent disk watermark warnings
- name: Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
- name: Install java
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'adopt'
- name: Install python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/0.11.0/install.sh | sh
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Build flink-agents
run: bash tools/build.sh
- name: Install ollama
run: bash tools/start_ollama_server.sh
- name: Run e2e tests
env:
LOG_LEVEL: INFO
run: |
export ES_HOST="http://localhost:9200"
tools/e2e.sh