diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml new file mode 100644 index 0000000..82bc65c --- /dev/null +++ b/.github/workflows/django.yml @@ -0,0 +1,87 @@ +name: Django CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_URL: "redis://redis:6379" + + MEILISEARCH_DISABLED: "1" + MEILISEARCH_HOST: "meilisearch" + MEILISEARCH_PORT: "7700" + MEILISEARCH_URL: "http://meilisearch:7700" + MEILISEARCH_V_1_MASTER_KEY: "meilisearch" + + DATABASE: postgres + POSTGRES_V_1_PASSWORD: postgres + POSTGRES_DB_NAME: githubactions + POSTGRES_USER: postgres + POSTGRES_HOST: postgres + POSTGRES_PORT: 5432 + + DJANGO_V_1_SECRET_KEY: "django" + + GOOGLE_OAUTH_DISABLED: "1" + GOOGLE_OAUTH_CLIENT_ID: "" + GOOGLE_OAUTH_CLIENT_SECRET: "" + FRONTEND_CALLBACK_URL: "" + + CLOUDFLARE_TURNSTILE_DISABLED: "1" + CLOUDFLARE_TURNSTILE_SECRET_KEY: "" + + EMAIL_HOST: "" + EMAIL_HOST_USER: "" + EMAIL_HOST_PASSWORD: "" + + CLIENT_BASE_URL: "http://127.0.0.1:5173/" + + ADMINS: '[{"name": "Joe", "email": "joe@github.com"}]' + + CORS_ALLOWED_ORIGINS: "http://127.0.0.1:5173 http://localhost:5173" + ALLOWED_HOSTS: "localhost 127.0.0.1 [::1]" + ADMIN_URL_SEGMENT: "githubactions" + DEBUG: 1 + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + python-version: ['3.10'] + + services: + postgres: + image: postgres:15-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: githubactions + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready --health-interval 10s + --health-timeout 5s --health-retries 5 + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run Migrations + run: | + python manage.py migrate + - name: Run Tests + run: | + python manage.py test