Files
quickbot_cli/scripts/local_ci.sh
Alexander Kalinovsky 7fa51bda6b
All checks were successful
CI / test (3.13) (push) Successful in 1m30s
Publish to TestPyPI / build-publish (release) Has been skipped
Publish to PyPI / build-publish (release) Successful in 34s
chore: update dependencies and license, refine local CI script for comprehensive checks
2025-09-08 19:03:36 +03:00

63 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# SPDX-FileCopyrightText: 2025 Alexander Kalinovsky <a@k8y.ru>
#
# SPDX-License-Identifier: Apache-2.0
# Local CI script to run all checks and a packaging/CLI smoke test
set -e
echo "🚀 Running local CI checks and smoke tests..."
echo "📦 Installing dependencies..."
uv sync --all-extras --dev
echo "🔍 Running Ruff linting..."
uv run ruff check
echo "🎨 Checking code formatting..."
uv run ruff format --check
echo "📝 Running MyPy type checking..."
uv run mypy .
echo "🔍 Running Reuse linting..."
uv run reuse lint
echo "🧪 Running tests..."
uv run pytest
echo "🧪 Testing CI workflow steps locally (package build and CLI)..."
echo "📦 Building package..."
uv build
echo "🔧 Testing package installation..."
uv pip install dist/*.whl
echo "❓ Testing help command..."
uv run quickbot --help
echo "🚀 Testing CLI functionality..."
mkdir -p test_cli_output
uv run quickbot init \
--output test_cli_output \
--project-name "Local Test" \
--description "Local Test Description" \
--author "Local Test" \
--license-name MIT \
--no-include-alembic \
--no-include-i18n \
--no-interactive
echo "📁 Checking generated files..."
ls -la test_cli_output/
echo "📄 Generated pyproject.toml:"
cat test_cli_output/pyproject.toml
echo "🧹 Cleaning up..."
rm -rf test_cli_output
rm -rf dist/*
echo "✅ All checks and smoke tests passed!"