Improved image build instructions #998
Workflow file for this run
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: tests | |
on: | |
push: | |
branches: | |
- 'main' | |
- '*.*.*' | |
paths-ignore: | |
- 'docs/**' | |
- '*.md' | |
- '*.mdx' | |
pull_request: | |
types: [ opened, synchronize, reopened, labeled ] | |
paths-ignore: | |
- 'docs/**' | |
- '*.md' | |
- '*.mdx' | |
# https://docs.github.com/en/actions/using-jobs/using-concurrency | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
ragflow_tests: | |
name: ragflow_tests | |
# https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution | |
# https://github.com/orgs/community/discussions/26261 | |
if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'ci') }} | |
runs-on: [ "self-hosted", "debug" ] | |
steps: | |
# https://github.com/hmarr/debug-action | |
#- uses: hmarr/debug-action@v2 | |
- name: Show PR labels | |
run: | | |
echo "Workflow triggered by ${{ github.event_name }}" | |
if [[ ${{ github.event_name }} == 'pull_request' ]]; then | |
echo "PR labels: ${{ join(github.event.pull_request.labels.*.name, ', ') }}" | |
fi | |
- name: Ensure workspace ownership | |
run: echo "chown -R $USER $GITHUB_WORKSPACE" && sudo chown -R $USER $GITHUB_WORKSPACE | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Build ragflow:dev-slim | |
run: | | |
RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-$HOME} | |
cp -r ${RUNNER_WORKSPACE_PREFIX}/huggingface.co ${RUNNER_WORKSPACE_PREFIX}/nltk_data ${RUNNER_WORKSPACE_PREFIX}/libssl*.deb ${RUNNER_WORKSPACE_PREFIX}/tika-server*.jar* . | |
sudo docker pull ubuntu:24.04 | |
sudo docker build -f Dockerfile -t infiniflow/ragflow:dev-slim . | |
- name: Build ragflow:dev | |
run: | | |
sudo docker build -f Dockerfile -t infiniflow/ragflow:dev . | |
- name: Start ragflow:dev-slim | |
run: | | |
sudo docker compose -f docker/docker-compose.yml up -d | |
- name: Stop ragflow:dev-slim | |
if: always() # always run this step even if previous steps failed | |
run: | | |
sudo docker compose -f docker/docker-compose.yml down -v | |
- name: Start ragflow:dev | |
run: | | |
echo "RAGFLOW_IMAGE=infiniflow/ragflow:dev" >> docker/.env | |
sudo docker compose -f docker/docker-compose.yml up -d | |
- name: Run sdk tests against Elasticsearch | |
run: | | |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY="" | |
export HOST_ADDRESS=http://host.docker.internal:9380 | |
until sudo docker exec ragflow-server curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do | |
echo "Waiting for service to be available..." | |
sleep 5 | |
done | |
cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py | |
- name: Run frontend api tests against Elasticsearch | |
run: | | |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY="" | |
export HOST_ADDRESS=http://host.docker.internal:9380 | |
until sudo docker exec ragflow-server curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do | |
echo "Waiting for service to be available..." | |
sleep 5 | |
done | |
cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py | |
- name: Stop ragflow:dev | |
if: always() # always run this step even if previous steps failed | |
run: | | |
sudo docker compose -f docker/docker-compose.yml down -v | |
- name: Start ragflow:dev | |
run: | | |
sudo DOC_ENGINE=infinity docker compose -f docker/docker-compose.yml up -d | |
- name: Run sdk tests against Infinity | |
run: | | |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY="" | |
export HOST_ADDRESS=http://host.docker.internal:9380 | |
until sudo docker exec ragflow-server curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do | |
echo "Waiting for service to be available..." | |
sleep 5 | |
done | |
cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py | |
- name: Run frontend api tests against Infinity | |
run: | | |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY="" | |
export HOST_ADDRESS=http://host.docker.internal:9380 | |
until sudo docker exec ragflow-server curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do | |
echo "Waiting for service to be available..." | |
sleep 5 | |
done | |
cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py | |
- name: Stop ragflow:dev | |
if: always() # always run this step even if previous steps failed | |
run: | | |
sudo DOC_ENGINE=infinity docker compose -f docker/docker-compose.yml down -v |