mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-06 14:55:07 +01:00
feat(ci): agrega job de verificación de entorno y servicios
- Verifica que Docker y docker-compose están instalados
- Verifica que existe el archivo docker-compose.intellidocs.yml
- Valida que las dependencias de Python se pueden instalar
- Comprueba que el servicio Redis responde correctamente
- Incluye mensajes claros de error con símbolos ✓/✗
- Relacionado con commit: 405c4c7cb1
This commit is contained in:
parent
2025d10ecf
commit
86bef112f1
1 changed files with 94 additions and 0 deletions
94
.github/workflows/ci.yml
vendored
94
.github/workflows/ci.yml
vendored
|
|
@ -74,6 +74,100 @@ jobs:
|
|||
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
|
||||
- name: Check files
|
||||
uses: pre-commit/action@v3.0.1
|
||||
verify-environment:
|
||||
name: "Verify Environment & Services"
|
||||
runs-on: ubuntu-24.04
|
||||
needs:
|
||||
- pre-commit
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
- name: Verify Docker installation
|
||||
run: |
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "✗ Docker is not installed"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Docker is installed: $(docker --version)"
|
||||
- name: Verify docker-compose installation
|
||||
run: |
|
||||
if ! command -v docker &> /dev/null || ! docker compose version &> /dev/null; then
|
||||
echo "✗ docker-compose is not installed"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ docker compose is installed: $(docker compose version)"
|
||||
- name: Verify compose file exists
|
||||
env:
|
||||
COMPOSE_FILE: docker/compose/docker-compose.intellidocs.yml
|
||||
run: |
|
||||
if [ ! -f "$COMPOSE_FILE" ]; then
|
||||
echo "✗ Compose file not found: $COMPOSE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Compose file found: $COMPOSE_FILE"
|
||||
- name: Set up Python
|
||||
id: setup-python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: ${{ env.DEFAULT_UV_VERSION }}
|
||||
enable-cache: true
|
||||
python-version: ${{ steps.setup-python.outputs.python-version }}
|
||||
- name: Generate and verify requirements.txt
|
||||
run: |
|
||||
uv export --quiet --no-dev --all-extras --format requirements-txt --output-file requirements.txt
|
||||
if [ ! -f "requirements.txt" ]; then
|
||||
echo "✗ requirements.txt was not generated"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ requirements.txt generated successfully"
|
||||
- name: Verify Python dependencies installation
|
||||
run: |
|
||||
# Create a temporary virtual environment to test installation
|
||||
python -m venv test_venv
|
||||
source test_venv/bin/activate
|
||||
|
||||
# Try to install dependencies
|
||||
if ! pip install -r requirements.txt --dry-run &> /dev/null; then
|
||||
echo "✗ Some Python dependencies are missing or cannot be installed"
|
||||
deactivate
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ All Python dependencies can be installed successfully"
|
||||
deactivate
|
||||
rm -rf test_venv
|
||||
- name: Start Redis service
|
||||
run: |
|
||||
docker compose --file docker/compose/docker-compose.intellidocs.yml up -d broker
|
||||
echo "Waiting for Redis to be ready..."
|
||||
sleep 10
|
||||
- name: Verify Redis is responding
|
||||
run: |
|
||||
MAX_RETRIES=30
|
||||
RETRY_COUNT=0
|
||||
|
||||
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
|
||||
if docker exec $(docker ps -qf "name=broker") redis-cli ping &> /dev/null; then
|
||||
echo "✓ Redis is responding"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
echo "Waiting for Redis... (attempt $RETRY_COUNT/$MAX_RETRIES)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "✗ Redis is not responding after $MAX_RETRIES attempts"
|
||||
docker compose --file docker/compose/docker-compose.intellidocs.yml logs broker
|
||||
exit 1
|
||||
- name: Stop services
|
||||
if: always()
|
||||
run: |
|
||||
docker compose --file docker/compose/docker-compose.intellidocs.yml down -v
|
||||
documentation:
|
||||
name: "Build & Deploy Documentation"
|
||||
runs-on: ubuntu-24.04
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue