Repository navigation
feat: Add ditto for full regression check #877
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Database | |
| on: | |
| pull_request: | |
| paths: &paths | |
| - "**.py" | |
| - "**.toml" | |
| - "**.lock" | |
| - "data/**" | |
| - "Resources/docker/app/Dockerfile" | |
| - "Resources/nginx/**" | |
| - "docker-compose**" | |
| - Makefile | |
| - .github/actions/setup-uv/action.yml | |
| - .github/workflows/database.yml | |
| push: | |
| branches-ignore: | |
| - master | |
| - staging | |
| paths: *paths | |
| jobs: | |
| csv: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Lint | |
| run: | | |
| set -e | |
| curl -sSL https://github.com/Clever/csvlint/releases/download/v0.3.0/csvlint-v0.3.0-linux-amd64.tar.gz | tar xz --strip-components=1 | |
| for filename in data/v2/csv/*.csv; do | |
| echo "$filename" | |
| ./csvlint -lazyquotes "$filename" # TODO: remove lazyquotes when https://github.com/Clever/csvlint/issues/45 will be addressed | |
| done | |
| openapi: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup uv | |
| uses: ./.github/actions/setup-uv | |
| - name: Generate OpenAPI schema | |
| run: | | |
| make install-base | |
| make openapi-generate | |
| sqlite: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Setup uv | |
| uses: ./.github/actions/setup-uv | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Start pokeapi | |
| run: | | |
| make install-base | |
| make setup | |
| make build-db | |
| nohup make serve & | |
| sleep 3 | |
| - name: Dump DB | |
| run: stat db.sqlite3 | |
| - name: Test data | |
| run: curl -Ss http://localhost:8000/api/v2/pokemon/1/ | grep -q 'bulbasaur' | |
| postgres: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Setup uv | |
| uses: ./.github/actions/setup-uv | |
| - name: Build and start services | |
| run: make docker-dev-up | |
| - name: Run migrations and build database | |
| run: | | |
| make docker-migrate | |
| make docker-build-db | |
| - name: Dump DB | |
| run: make docker-dump-db | |
| - name: Import database | |
| run: make docker-restore-db | |
| - name: Test data | |
| run: curl -Ss http://localhost/api/v2/pokemon/1/ | grep -q 'bulbasaur' | |
| - name: Crawl API | |
| run: | | |
| uvx --from pokeapi-ditto ditto clone --src-url http://localhost/ --dest-dir ./out |