From 0f5cdd9ccd8f4d5693a9999efdb81cb6a8f44f88 Mon Sep 17 00:00:00 2001 From: Naramsim Date: Fri, 28 Aug 2026 10:41:11 +0900 Subject: [PATCH 1/6] chore: limit builds in cicd --- .github/workflows/code-quality.yml | 18 +++++++----------- .github/workflows/database.yml | 9 +++++++++ .github/workflows/docker-build-and-push.yml | 12 ++++++++++-- .github/workflows/docker-k8s.yml | 8 ++++++++ .github/workflows/nix-environment.yml | 8 ++++++++ .github/workflows/release.yml | 5 +++++ 6 files changed, 47 insertions(+), 13 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index c7c2e78c4..273cc9c37 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -2,22 +2,18 @@ name: Code Quality on: pull_request: - paths: + paths: &paths - "**.py" - "**.toml" - - "Makefile" - - "uv.lock" - - ".github/workflows/code-quality.yml" + - "**.lock" + - default.nix + - Makefile + - .github/workflows/code-quality.yml push: - branches-ignore: + branches: - master - staging - paths: - - "**.py" - - "**.toml" - - "Makefile" - - "uv.lock" - - ".github/workflows/code-quality.yml" + paths: *paths jobs: ruff: diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 090a341b4..2c1dc1a98 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -2,10 +2,19 @@ name: Database on: pull_request: + paths: &paths + - "**.py" + - "**.toml" + - "**.lock" + - "data/**" + - "docker-compose**" + - Makefile + - .github/workflows/database.yml push: branches-ignore: - master - staging + paths: *paths jobs: csv: diff --git a/.github/workflows/docker-build-and-push.yml b/.github/workflows/docker-build-and-push.yml index 1c0cce957..8f0e297d4 100644 --- a/.github/workflows/docker-build-and-push.yml +++ b/.github/workflows/docker-build-and-push.yml @@ -1,12 +1,20 @@ name: Publish on: + pull_request: + paths: &paths + - "**.py" + - "**.toml" + - "**.lock" + - "Resources/docker/**" + - .github/workflows/docker-build-and-push.yml push: branches: - - 'master' - - 'staging' + - master + - staging tags: - '*.*.*' + paths: *paths jobs: docker: diff --git a/.github/workflows/docker-k8s.yml b/.github/workflows/docker-k8s.yml index 6126a568c..679e7dede 100644 --- a/.github/workflows/docker-k8s.yml +++ b/.github/workflows/docker-k8s.yml @@ -2,6 +2,14 @@ name: Container on: pull_request: + paths: + - "**.py" + - "**.toml" + - "**.lock" + - "data/**" + - "Resources/k8s/**" + - Makefile + - .github/workflows/docker-k8s.yml jobs: docker: diff --git a/.github/workflows/nix-environment.yml b/.github/workflows/nix-environment.yml index 9373fb68b..388732725 100644 --- a/.github/workflows/nix-environment.yml +++ b/.github/workflows/nix-environment.yml @@ -2,9 +2,17 @@ name: Nix Environment on: pull_request: + paths: &paths + - "**.py" + - "**.toml" + - "**.lock" + - default.nix + - Makefile + - .github/workflows/nix-environment.yml push: branches: - master + paths: *paths jobs: nix-test: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d8fc8985f..fb74800b5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,6 +2,11 @@ name: Release on: push: + paths: + - "**.py" + - "data/**" + - Makefile + - .github/workflows/release.yml branches: - master tags: From 4ddebf5b294da65a4f32d1f64fa63006991ca565 Mon Sep 17 00:00:00 2001 From: Naramsim Date: Fri, 28 Aug 2026 10:41:26 +0900 Subject: [PATCH 2/6] chore: remove unused file --- CONTRIBUTORS.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100755 CONTRIBUTORS.txt diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt deleted file mode 100755 index 21cbd5223..000000000 --- a/CONTRIBUTORS.txt +++ /dev/null @@ -1,5 +0,0 @@ -Paul Hallett paulandrewhallett@gmail.com -Zane Adickes zaneadix@gmail.com -Charles Marttinen charlesmarttinen.ca -Sargun Vohra sargun.vohra@gmail.com -Alessandro Pezzè igougi.ui@gmail.com From 450e7931ae034f658c084d4ee6dc762266e0e501 Mon Sep 17 00:00:00 2001 From: Naramsim Date: Fri, 28 Aug 2026 10:41:51 +0900 Subject: [PATCH 3/6] chore: move file --- {scripts => Resources/scripts}/scraping_pokeball_price.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {scripts => Resources/scripts}/scraping_pokeball_price.py (100%) diff --git a/scripts/scraping_pokeball_price.py b/Resources/scripts/scraping_pokeball_price.py similarity index 100% rename from scripts/scraping_pokeball_price.py rename to Resources/scripts/scraping_pokeball_price.py From fba27ba784ae47094838f78686f9846e5f48284f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Fri, 28 Aug 2026 03:44:09 +0200 Subject: [PATCH 4/6] Update code-quality.yml --- .github/workflows/code-quality.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 273cc9c37..d36a1c2a8 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -10,7 +10,7 @@ on: - Makefile - .github/workflows/code-quality.yml push: - branches: + branches-ignore: - master - staging paths: *paths From 0a0ded7b6e4f1473f3bacfa9e4234c61cad833d0 Mon Sep 17 00:00:00 2001 From: Naramsim Date: Sat, 29 Aug 2026 09:41:35 +0900 Subject: [PATCH 5/6] chore: refine filters --- .github/workflows/code-quality.yml | 1 - .github/workflows/database.yml | 1 + .github/workflows/docker-build-and-push.yml | 7 ++----- .github/workflows/docker-k8s.yml | 3 +++ 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index d36a1c2a8..c8e82d481 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -6,7 +6,6 @@ on: - "**.py" - "**.toml" - "**.lock" - - default.nix - Makefile - .github/workflows/code-quality.yml push: diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 2c1dc1a98..739a1f60c 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -7,6 +7,7 @@ on: - "**.toml" - "**.lock" - "data/**" + - "Resources/nginx/**" - "docker-compose**" - Makefile - .github/workflows/database.yml diff --git a/.github/workflows/docker-build-and-push.yml b/.github/workflows/docker-build-and-push.yml index 8f0e297d4..08f4f3ba8 100644 --- a/.github/workflows/docker-build-and-push.yml +++ b/.github/workflows/docker-build-and-push.yml @@ -1,20 +1,18 @@ name: Publish on: - pull_request: - paths: &paths + push: + paths: - "**.py" - "**.toml" - "**.lock" - "Resources/docker/**" - .github/workflows/docker-build-and-push.yml - push: branches: - master - staging tags: - '*.*.*' - paths: *paths jobs: docker: @@ -36,7 +34,6 @@ jobs: id: buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME_NARAMSIM }} diff --git a/.github/workflows/docker-k8s.yml b/.github/workflows/docker-k8s.yml index 679e7dede..e5def8817 100644 --- a/.github/workflows/docker-k8s.yml +++ b/.github/workflows/docker-k8s.yml @@ -7,7 +7,10 @@ on: - "**.toml" - "**.lock" - "data/**" + - "docker-compose**" + - "Resources/docker/**" - "Resources/k8s/**" + - "Resources/kind/**" - Makefile - .github/workflows/docker-k8s.yml From 6ef235d99b3c1e2698883c8a80ec07280abf8aff Mon Sep 17 00:00:00 2001 From: Naramsim Date: Sat, 29 Aug 2026 10:09:36 +0900 Subject: [PATCH 6/6] chore: remove duplication --- .github/FUNDING.yml | 11 ----------- .github/workflows/database.yml | 11 +++-------- .github/workflows/docker-k8s.yml | 4 ++-- .github/workflows/release.yml | 16 +++++++--------- Makefile | 11 +++++++++++ 5 files changed, 23 insertions(+), 30 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 2758c2fda..d124c7773 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,12 +1 @@ -# These are supported funding model platforms - -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username open_collective: pokeapi -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 739a1f60c..d894e115f 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -76,19 +76,14 @@ jobs: with: submodules: recursive - name: Build and start services - run: | - docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d --build + run: make docker-dev-up - name: Run migrations and build database run: | make docker-migrate make docker-build-db - name: Dump DB - run: docker compose exec -T db pg_dump -U ash -Fc -N 'hdb_*' pokeapi > pokeapi.dump - - name: Drop and recreate database - run: | - docker compose exec -T db psql -U ash -d postgres -c "DROP DATABASE pokeapi WITH (FORCE);" - docker compose exec -T db psql -U ash -d postgres -c "CREATE DATABASE pokeapi;" + run: make docker-dump-db - name: Import database - run: docker compose exec -T db pg_restore -U ash -d pokeapi < pokeapi.dump + run: make docker-restore-db - name: Test data run: curl -Ss http://localhost/api/v2/pokemon/1/ | grep -q 'bulbasaur' diff --git a/.github/workflows/docker-k8s.yml b/.github/workflows/docker-k8s.yml index e5def8817..19cf154b0 100644 --- a/.github/workflows/docker-k8s.yml +++ b/.github/workflows/docker-k8s.yml @@ -118,8 +118,8 @@ jobs: uses: actions/checkout@v6 - name: Build dev environment run: | - docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d - sleep 30 + make docker-dev-up + sleep 5 - name: Assert containers running run: | last_command=$(docker ps | grep 'pokeapi-' | wc -l) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fb74800b5..9db0d9ea0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,18 +23,16 @@ jobs: submodules: recursive - name: Start pokeapi (docker) run: | - docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d + make docker-dev-up make docker-migrate make docker-build-db - name: Dump PG db - run: docker compose exec -T -u postgres db sh -c "cd /tmp && pg_dump -h localhost -Fc -U ash -N 'hdb_*' pokeapi > pokeapi.pgdump" - - name: Copy PG dump - run: | - docker compose cp db:/tmp/pokeapi.pgdump ./ - ls -larth + run: make docker-dump-db + - name: List folder + run: ls -larth - name: Setup uv uses: ./.github/actions/setup-uv - - name: Start pokeapi + - name: Generate SQLite db run: | rm -rf .venv make install-base @@ -43,7 +41,7 @@ jobs: nohup make serve & sleep 3 - name: Release tag - uses: softprops/action-gh-release@v3.0.1 + uses: softprops/action-gh-release@v3.0.2 if: startsWith(github.ref, 'refs/tags/') with: draft: true @@ -53,7 +51,7 @@ jobs: db.sqlite3 generate_release_notes: true - name: Release master branch - uses: softprops/action-gh-release@v3.0.1 + uses: softprops/action-gh-release@v3.0.2 if: github.ref == 'refs/heads/master' with: body: | diff --git a/Makefile b/Makefile index 68778b3f3..ce7e06dd3 100755 --- a/Makefile +++ b/Makefile @@ -62,6 +62,9 @@ openapi-generate: check-uv docker-up: # (Docker) Create services/volumes/networks docker compose up -d +docker-dev-up: # (Docker) Build local pokeapi image and create services/volumes/networks + docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d --build + docker-migrate: # (Docker) Run any pending migrations docker compose exec -T app python manage.py migrate ${docker_config} @@ -95,6 +98,14 @@ docker-prod: docker-setup: docker-up docker-migrate docker-build-db # (Docker) Start services, prepare the latest DB schema, populate the DB +docker-dump-db: + docker compose exec -T db pg_dump -U ash -Fc -N 'hdb_*' pokeapi > pokeapi.pgdump + +docker-restore-db: + docker compose exec -T db psql -U ash -d postgres -c "DROP DATABASE pokeapi WITH (FORCE);" + docker compose exec -T db psql -U ash -d postgres -c "CREATE DATABASE pokeapi;" + docker compose exec -T db pg_restore -U ash -d pokeapi < pokeapi.pgdump + format: check-uv # Format the source code uv run ruff format .