From f032ae50d61c4482c85a9612b3efa219590b8aef Mon Sep 17 00:00:00 2001 From: Sirin Puenggun Date: Mon, 30 Oct 2023 20:25:27 +0700 Subject: [PATCH] Add django.yml to run github action on tests (#11) * Create django.yml * Update django.yml * Update django.yml * Connect to Postgres before do test * Fix Syntax Error * Fix Migrate error * Fix migration error / Modify requirments.txt * Fix Database secret value missing * Fix test error * Add badge to README.md --- .github/workflows/django.yml | 43 +++++++++++++++++++++++++++++++++++ README.md | 9 ++++++++ backend/core/settings.py | 18 +++++++-------- requirements.txt | Bin 2540 -> 232 bytes 4 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/django.yml create mode 100644 README.md diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml new file mode 100644 index 0000000..1896a3e --- /dev/null +++ b/.github/workflows/django.yml @@ -0,0 +1,43 @@ +name: Django CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:latest + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: github_actions + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.11 + uses: actions/setup-python@v2 + with: + python-version: 3.11 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run migrations + run: | + cd backend + python manage.py migrate + - name: Run tests + run: | + cd backend + python manage.py test diff --git a/README.md b/README.md new file mode 100644 index 0000000..803f355 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# TurTaskWeb + +[![Django Testing](https://github.com/TurTaskProject/TurTaskWeb/actions/workflows/django.yml/badge.svg)](https://github.com/TurTaskProject/TurTaskWeb/actions/workflows/django.yml) + +--- + +TurTask is a task and project management tool that incorporates gamification elements. + +[Wiki Repository](https://github.com/TurTaskProject/TurTaskWiki) diff --git a/backend/core/settings.py b/backend/core/settings.py index 65fc5f7..7fa2954 100644 --- a/backend/core/settings.py +++ b/backend/core/settings.py @@ -22,7 +22,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = config('SECRET_KEY') +SECRET_KEY = config('SECRET_KEY', default='j5&66&8@b-!3tbq!=w6-dypl($_0zzoi*ilxd1*&$_6s-59il5') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = config('DEBUG', default=False, cast=bool) @@ -82,8 +82,8 @@ REST_USE_JWT = True SOCIALACCOUNT_PROVIDERS = { 'google': { 'APP': { - 'client_id': config('GOOGLE_CLIENT_ID'), - 'secret': config('GOOGLE_CLIENT_SECRET'), + 'client_id': config('GOOGLE_CLIENT_ID', default='fake-client-id'), + 'secret': config('GOOGLE_CLIENT_SECRET', default='fake-client-secret'), 'key': '' }, "SCOPE": [ @@ -118,7 +118,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - # "allauth.account.middleware.AccountMiddleware", + "allauth.account.middleware.AccountMiddleware", ] ROOT_URLCONF = 'core.urls' @@ -150,11 +150,11 @@ WSGI_APPLICATION = 'core.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': config('DB_NAME'), - 'USER': config('DB_USER'), - 'PASSWORD': config('DB_PASSWORD'), - 'HOST': config('DB_HOST'), - 'PORT': config('DB_PORT'), + 'NAME': config('DB_NAME', default='github_actions'), + 'USER': config('DB_USER', default='postgres'), + 'PASSWORD': config('DB_PASSWORD', default='postgres'), + 'HOST': config('DB_HOST', default='127.0.0.1'), + 'PORT': config('DB_PORT', default='5432'), } } diff --git a/requirements.txt b/requirements.txt index 985f79c80e29eeb9301e3ba70249e090954cb2b3..81c4d2f2826a55a6fb05c4ff48b236eb6a67bdab 100644 GIT binary patch literal 232 zcmZvX%Mybi3`O_+OBfaDxPeuFgaSShn1JK>_bs-%>hfgHy-A+4@_g$7Tk!DZ@9(X+`3Z$Kb(O9k%FfF}vT2V)m$3 yy9Zp(ik7Sj7ZY}0kYA_tlgk#RXc%SxvXG|r(>?E53Vth~111=)G8R*Lj=ceM#!Ynq literal 2540 zcmZ`*!H(Kc4D`8DKP9UT6uNupt*1(rdZ^T66-a==h_5Mr0*jqMqG zp0j`dWO9_Xl+sEeEBS=iRG#D`-V=E*?_?<%-W!~DQsY$tPt*(uA{|vALx(&oym>y6 zXS^eq<5o9Bis)44`1#yd+Mrg8{H&G80o7XB9SszIhgwRiZPD~h=$it=n*uq5uNd^0)W z_olCGbv@%2ybkDdeLH2QdCw|N6IEN`XXGNgnW`|wx!mI$uw5eap`V{?o{eNDZr`gr zf;T&Cor)d}vlGvWBPJL;qBW@oAffrXyPF zTbH874$+;mWBy0%#%IPpziO||E71qXufRV;{|Y&4Uv^rFRZ=)?OwZ%U1YIn378UYs zkDB=k2!adyU))H5k;r{~0|WWDMNBI@MAyI`Q~~4dj*sc%sdbk6f;(@e?Rh$OqP{g24Rl>qbAx`6gE`yW zU|EKU1f48Z4VjPQui$+ICe?G>WbOz$$WIg8gc|Bj>Py=%M3aH}hv+4A_!Gi5i7B)# z`wfUM@#YyXLMH~V=Zzrfs{Ox8_SnJUg|@wN{! z!>w|EOIY9YZvU&wyngCCht7IcrrdEC)ng3fX@9@b{CQ^^sX?cP&l4)-U5Fj~DB7M^ zHVLB5c52Ld!mRj2 zD*8=NWU#ZIIIik9+qBO_SMdK5o}aP(ED!%HD#69Fu%FS>GpccW*$%esu|xg=p2&d;