Skip to content

Commit 3f27daa

Browse files
authored
Merge pull request #1202 from PokeAPI/db-cicd
test db dump and restore
2 parents e00f125 + 63d4c09 commit 3f27daa

File tree

5 files changed

+72
-15
lines changed

5 files changed

+72
-15
lines changed

.github/workflows/database.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Database
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
sqlite:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v4
12+
with:
13+
submodules: recursive
14+
- name: Start pokeapi
15+
run: |
16+
make install
17+
make migrate
18+
make build-db
19+
nohup make serve &
20+
sleep 3
21+
- name: Dump DB
22+
run: stat db.sqlite3
23+
- name: Test data
24+
run: curl -Ss http://localhost:8000/api/v2/pokemon/1/ | grep -q 'bulbasaur'
25+
postgres:
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
with:
31+
submodules: recursive
32+
- name: Build
33+
run: |
34+
docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d
35+
make docker-migrate
36+
make docker-build-db
37+
- name: Dump DB
38+
run: docker compose exec -T -u postgres db sh -c "cd /tmp && pg_dump -h localhost -Fc -U ash -N 'hdb_*' pokeapi > pokeapi.dump"
39+
- name: Copy dump
40+
run: docker compose cp db:/tmp/pokeapi.dump ./
41+
- name: Down services
42+
run: docker compose -f docker-compose.yml -f docker-compose-dev.yml down -v
43+
- name: Start services
44+
run: docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d
45+
- name: Import database
46+
run: |
47+
docker compose cp ./pokeapi.dump db:/tmp/
48+
docker compose exec -T -u postgres db sh -c "cd /tmp && pg_restore -h localhost -U ash -d pokeapi pokeapi.dump"
49+
- name: Test data
50+
run: curl -Ss http://localhost/api/v2/pokemon/1/ | grep -q 'bulbasaur'

.github/workflows/docker-build-and-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Push Docker image
1+
name: Publish
22

33
on:
44
push:

.github/workflows/docker-k8s.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Test Docker, Compose and k8s
1+
name: Container
22

33
on:
44
pull_request:

.github/workflows/release.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,31 @@ jobs:
1313
uses: actions/checkout@v4
1414
with:
1515
submodules: recursive
16-
- name: Build
16+
- name: Start pokeapi (docker)
1717
run: |
1818
docker compose -f docker-compose.yml -f docker-compose-dev.yml up -d
1919
make docker-migrate
2020
make docker-build-db
21-
- name: Dump DB
22-
run: docker compose exec -T -u postgres db sh -c "cd /tmp && pg_dump -h localhost -Fc -U ash pokeapi | gzip > pokeapi.dump.zip"
23-
- name: Copy dump
21+
- name: Dump PG db
22+
run: docker compose exec -T -u postgres db sh -c "cd /tmp && pg_dump -h localhost -Fc -U ash -N 'hdb_*' pokeapi > pokeapi.pgdump"
23+
- name: Copy PG dump
2424
run: |
25-
docker compose cp db:/tmp/pokeapi.dump.zip ./
25+
docker compose cp db:/tmp/pokeapi.pgdump ./
2626
ls -larth
27+
- name: Start pokeapi
28+
run: |
29+
make install
30+
make migrate
31+
make build-db
32+
nohup make serve &
33+
sleep 3
2734
- name: Release
2835
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda
2936
if: startsWith(github.ref, 'refs/tags/')
3037
with:
3138
draft: true
3239
fail_on_unmatched_files: true
33-
files: pokeapi.dump.zip
40+
files: |
41+
pokeapi.pgdump
42+
db.sqlite3
3443
generate_release_notes: true

Resources/nginx/nginx.conf

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ http {
4343

4444
resolver 127.0.0.11 valid=30s;
4545

46-
upstream graphql_upstream {
47-
server graphql-engine:8080 fail_timeout=0;
48-
}
49-
5046
geo $limit {
5147
default 1;
5248
10.0.0.0/8 0;
@@ -95,7 +91,8 @@ http {
9591
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
9692
proxy_set_header Host $http_host;
9793
proxy_redirect off;
98-
proxy_pass http://graphql_upstream/;
94+
set $upstream_graphql graphql;
95+
proxy_pass http://$upstream_graphql:8080/;
9996
}
10097

10198
location /graphql/console {
@@ -105,7 +102,7 @@ http {
105102
proxy_set_header X-Real-IP $remote_addr;
106103
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
107104
proxy_set_header Host $http_host;
108-
set $upstream_graphiql graphiql;
105+
set $upstream_graphiql graphql-engine;
109106
proxy_pass http://$upstream_graphiql:80/;
110107
}
111108

@@ -126,7 +123,8 @@ http {
126123
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
127124
proxy_set_header Host $http_host;
128125
proxy_redirect off;
129-
proxy_pass http://graphql_upstream/v1/graphql;
126+
set $upstream_graphql graphql;
127+
proxy_pass http://$upstream_graphql:8080/v1/graphql;
130128
}
131129

132130
location /api/ {

0 commit comments

Comments
 (0)