|
name: Style check |
|
|
|
on: |
|
pull_request: |
|
branches: |
|
- main |
|
|
|
concurrency: |
|
group: style-${{ github.head_ref || github.run_id }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
python-style: |
|
name: Python Style |
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
- name: Checkout code |
|
uses: actions/checkout@v4 |
|
|
|
- name: Check changed files |
|
id: changed-files |
|
uses: tj-actions/changed-files@v45 |
|
with: |
|
files: api/** |
|
|
|
- name: Install Poetry |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
uses: abatilo/actions-poetry@v3 |
|
|
|
- name: Set up Python |
|
uses: actions/setup-python@v5 |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
with: |
|
python-version: '3.10' |
|
|
|
- name: Python dependencies |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: poetry install -C api --only lint |
|
|
|
- name: Ruff check |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: poetry run -C api ruff check ./api |
|
|
|
- name: Dotenv check |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: poetry run -C api dotenv-linter ./api/.env.example ./web/.env.example |
|
|
|
- name: Ruff formatter check |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: poetry run -C api ruff format --check ./api |
|
|
|
- name: Lint hints |
|
if: failure() |
|
run: echo "Please run 'dev/reformat' to fix the fixable linting errors." |
|
|
|
web-style: |
|
name: Web Style |
|
runs-on: ubuntu-latest |
|
defaults: |
|
run: |
|
working-directory: ./web |
|
|
|
steps: |
|
- name: Checkout code |
|
uses: actions/checkout@v4 |
|
|
|
- name: Check changed files |
|
id: changed-files |
|
uses: tj-actions/changed-files@v45 |
|
with: |
|
files: web/** |
|
|
|
- name: Setup NodeJS |
|
uses: actions/setup-node@v4 |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
with: |
|
node-version: 20 |
|
cache: yarn |
|
cache-dependency-path: ./web/package.json |
|
|
|
- name: Web dependencies |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: yarn install --frozen-lockfile |
|
|
|
- name: Web style check |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
run: yarn run lint |
|
|
|
|
|
superlinter: |
|
name: SuperLinter |
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
- name: Checkout code |
|
uses: actions/checkout@v4 |
|
|
|
- name: Check changed files |
|
id: changed-files |
|
uses: tj-actions/changed-files@v45 |
|
with: |
|
files: | |
|
**.sh |
|
**.yaml |
|
**.yml |
|
**Dockerfile |
|
dev/** |
|
|
|
- name: Super-linter |
|
uses: super-linter/super-linter/slim@v7 |
|
if: steps.changed-files.outputs.any_changed == 'true' |
|
env: |
|
BASH_SEVERITY: warning |
|
DEFAULT_BRANCH: main |
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
IGNORE_GENERATED_FILES: true |
|
IGNORE_GITIGNORED_FILES: true |
|
VALIDATE_BASH: true |
|
VALIDATE_BASH_EXEC: true |
|
|
|
|
|
VALIDATE_DOCKERFILE_HADOLINT: true |
|
VALIDATE_XML: true |
|
VALIDATE_YAML: true |
|
|