84 lines
3.3 KiB
YAML
84 lines
3.3 KiB
YAML
# When you push to the develop branch or open/update a pull request targeting main, Gitea will:
|
|
# Trigger the "CI Checks" workflow.
|
|
# Execute the checks job on a runner.
|
|
# Run each step sequentially.
|
|
# If any of the linter/formatter check commands (black --check, ruff check, npm run lint) exit with a non-zero status code (indicating an error or check failure), the step and the entire job will fail.
|
|
# You will see the status (success/failure) associated with your commit or pull request in the Gitea interface.
|
|
|
|
name: CI Checks
|
|
|
|
# Define triggers for the workflow
|
|
on:
|
|
push:
|
|
branches:
|
|
- develop # Run on pushes to the develop branch
|
|
pull_request:
|
|
branches:
|
|
- main # Run on pull requests targeting the main branch
|
|
|
|
jobs:
|
|
checks:
|
|
name: Linters and Formatters
|
|
runs-on: ubuntu-latest # Use a standard Linux runner environment
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4 # Fetches the repository code
|
|
|
|
# --- Backend Checks (Python/FastAPI) ---
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11' # Match your project/Dockerfile version
|
|
cache: 'pip' # Cache pip dependencies based on requirements.txt
|
|
cache-dependency-path: 'be/requirements.txt' # Specify path for caching
|
|
|
|
- name: Install Backend Dependencies and Tools
|
|
working-directory: ./be # Run command within the 'be' directory
|
|
run: |
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
pip install black ruff # Install formatters/linters for CI check
|
|
|
|
- name: Run Black Formatter Check (Backend)
|
|
working-directory: ./be
|
|
run: black --check --diff .
|
|
|
|
- name: Run Ruff Linter (Backend)
|
|
working-directory: ./be
|
|
run: ruff check .
|
|
|
|
# --- Frontend Checks (SvelteKit/Node.js) ---
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20.x' # Or specify your required Node.js version (e.g., 'lts/*')
|
|
cache: 'npm' # Or 'pnpm' / 'yarn' depending on your package manager
|
|
cache-dependency-path: 'fe/package-lock.json' # Adjust lockfile name if needed
|
|
|
|
- name: Install Frontend Dependencies
|
|
working-directory: ./fe # Run command within the 'fe' directory
|
|
run: npm install # Or 'pnpm install' / 'yarn install'
|
|
|
|
- name: Run ESLint and Prettier Check (Frontend)
|
|
working-directory: ./fe
|
|
# Assuming you have a 'lint' script in fe/package.json that runs both
|
|
# Example package.json script: "lint": "prettier --check . && eslint ."
|
|
run: npm run lint
|
|
# If no combined script, run separately:
|
|
# run: |
|
|
# npm run format -- --check # Or 'npx prettier --check .'
|
|
# npm run lint # Or 'npx eslint .'
|
|
|
|
# - name: Run Frontend Type Check (Optional but recommended)
|
|
# working-directory: ./fe
|
|
# # Assuming you have a 'check' script: "check": "svelte-kit sync && svelte-check ..."
|
|
# run: npm run check
|
|
|
|
# - name: Run Placeholder Tests (Optional)
|
|
# run: |
|
|
# # Add commands to run backend tests if available
|
|
# # Add commands to run frontend tests (e.g., npm test in ./fe) if available
|
|
# echo "No tests configured yet." |