| @@ -18,54 +18,89 @@ jobs: | |||
| - name: Checkout code | |||
| uses: actions/checkout@v4 | |||
| - name: Check changed files | |||
| id: changed-files | |||
| uses: tj-actions/changed-files@v44 | |||
| with: | |||
| files: api/** | |||
| - 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: pip install ruff dotenv-linter | |||
| - name: Ruff check | |||
| if: steps.changed-files.outputs.any_changed == 'true' | |||
| run: ruff check ./api | |||
| - name: Dotenv check | |||
| if: steps.changed-files.outputs.any_changed == 'true' | |||
| run: dotenv-linter ./api/.env.example ./web/.env.example | |||
| - name: Lint hints | |||
| if: failure() | |||
| run: echo "Please run 'dev/reformat' to fix the fixable linting errors." | |||
| test: | |||
| name: ESLint and SuperLinter | |||
| web-style: | |||
| name: Web Style | |||
| runs-on: ubuntu-latest | |||
| needs: python-style | |||
| 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@v44 | |||
| with: | |||
| fetch-depth: 0 | |||
| 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 | |||
| run: | | |||
| cd ./web | |||
| yarn install --frozen-lockfile | |||
| if: steps.changed-files.outputs.any_changed == 'true' | |||
| run: yarn install --frozen-lockfile | |||
| - name: Web style check | |||
| run: | | |||
| cd ./web | |||
| yarn run lint | |||
| 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@v44 | |||
| with: | |||
| files: | | |||
| **.sh | |||
| **.yaml | |||
| **.yml | |||
| Dockerfile | |||
| - name: Super-linter | |||
| uses: super-linter/super-linter/slim@v6 | |||
| if: steps.changed-files.outputs.any_changed == 'true' | |||
| env: | |||
| BASH_SEVERITY: warning | |||
| DEFAULT_BRANCH: main | |||