From 2039cff422df2c6f926b2423f67f5383ce75cdab Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:25:41 +0100 Subject: [PATCH 1/8] add github actions --- .github/workflows/build.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f96cca2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,21 @@ +--- +name: Checks + +on: [push] + +jobs: + test-lint: + name: Test and Lint + runs-on: ubuntu-20.04 + steps: + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v2 + - name: Test + run: docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" + - name: Lint + run: docker-compose run --rm app sh -c "flake8" From c3d0042468fa5350e1a7f6c34b2eecdc8ac35ed0 Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:36:44 +0100 Subject: [PATCH 2/8] increase docker compose version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b040591..8713af1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3" +version: "3.9" services: app: From b21e26cb75d83b4cab7419599f88c7d2cd66987f Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:41:04 +0100 Subject: [PATCH 3/8] fix wait for db --- app/core/management/commands/wait_for_db.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/core/management/commands/wait_for_db.py b/app/core/management/commands/wait_for_db.py index b6bdcde..6594953 100644 --- a/app/core/management/commands/wait_for_db.py +++ b/app/core/management/commands/wait_for_db.py @@ -1,5 +1,7 @@ import time +from psycopg2 import OperationalError as Psycopyg2OpError + from django.db import connections from django.db.utils import OperationalError from django.core.management.base import BaseCommand @@ -14,7 +16,7 @@ def handle(self, *args, **options): while not db_conn: try: db_conn = connections['default'] - except OperationalError: + except (OperationalError, Psycopyg2OpError): self.stdout.write('Database unavailable, waiting 1 second...') time.sleep(1) From 14ea88758dd88f64588fa914ec0310d360d186df Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:43:53 +0100 Subject: [PATCH 4/8] wait for db --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f96cca2..3c6ab23 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Test - run: docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" + # run: docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" + run: docker-compose run --rm app sh -c "python manage.py wait_for_db" - name: Lint run: docker-compose run --rm app sh -c "flake8" From 046655fb927449070cf32fcd7943668c6f787b81 Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:47:50 +0100 Subject: [PATCH 5/8] added docker compose up --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c6ab23..2265c9f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,6 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Test - # run: docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" - run: docker-compose run --rm app sh -c "python manage.py wait_for_db" + run: docker-compose run --rm app sh -c "docker-compose up -d && python manage.py wait_for_db && python manage.py test" - name: Lint run: docker-compose run --rm app sh -c "flake8" From 833024604ba5cfb5bd4a9abb5a535431ad811d57 Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:50:40 +0100 Subject: [PATCH 6/8] fix docker compose up --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2265c9f..14cf5f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,6 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Test - run: docker-compose run --rm app sh -c "docker-compose up -d && python manage.py wait_for_db && python manage.py test" + run: docker-compose up -d && docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" - name: Lint run: docker-compose run --rm app sh -c "flake8" From 8cf40a5223fe80cb0e2016977afea6918102f102 Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Thu, 14 Apr 2022 19:52:59 +0100 Subject: [PATCH 7/8] undo --- app/core/management/commands/wait_for_db.py | 4 +--- docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/core/management/commands/wait_for_db.py b/app/core/management/commands/wait_for_db.py index 6594953..b6bdcde 100644 --- a/app/core/management/commands/wait_for_db.py +++ b/app/core/management/commands/wait_for_db.py @@ -1,7 +1,5 @@ import time -from psycopg2 import OperationalError as Psycopyg2OpError - from django.db import connections from django.db.utils import OperationalError from django.core.management.base import BaseCommand @@ -16,7 +14,7 @@ def handle(self, *args, **options): while not db_conn: try: db_conn = connections['default'] - except (OperationalError, Psycopyg2OpError): + except OperationalError: self.stdout.write('Database unavailable, waiting 1 second...') time.sleep(1) diff --git a/docker-compose.yml b/docker-compose.yml index 8713af1..b040591 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.9" +version: "3" services: app: From 39d4c23f200f9077d0ed57e48de9a28cf2f55148 Mon Sep 17 00:00:00 2001 From: Mark Winterbottom Date: Tue, 26 Apr 2022 20:00:48 +0100 Subject: [PATCH 8/8] fix: remove wait_for_db --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 14cf5f5..c1e0e30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,6 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Test - run: docker-compose up -d && docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test" + run: docker-compose up -d && docker-compose run --rm app sh -c "python manage.py test" - name: Lint run: docker-compose run --rm app sh -c "flake8"