mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-18 14:34:21 +01:00
Seperate out postgres tests and clarify postgres support (#1494)
* Clarifies the position on supporting Postgres and removes Postgres from the main test suite * Closes #973
This commit is contained in:
33
.github/workflows/lint.yml
vendored
Normal file
33
.github/workflows/lint.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
name: Linting
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: ['3.6']
|
||||||
|
TESTING_DATABASE_URL: ['sqlite://']
|
||||||
|
|
||||||
|
name: Linting
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
architecture: x64
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
python -m pip install -r development.txt
|
||||||
|
sudo yarn install --non-interactive
|
||||||
|
sudo yarn global add prettier@1.17.0
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: make lint
|
||||||
|
|
||||||
53
.github/workflows/mysql.yml
vendored
Normal file
53
.github/workflows/mysql.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
name: CTFd MySQL CI
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: ['3.6']
|
||||||
|
TESTING_DATABASE_URL: ['mysql+pymysql://root@localhost/ctfd']
|
||||||
|
|
||||||
|
name: Python ${{ matrix.python-version }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
architecture: x64
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
python -m pip install -r development.txt
|
||||||
|
sudo yarn install --non-interactive
|
||||||
|
sudo yarn global add prettier@1.17.0
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: make lint
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
sudo rm -f /etc/boto.cfg
|
||||||
|
make test
|
||||||
|
env:
|
||||||
|
AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
|
||||||
|
AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
||||||
|
|
||||||
|
- name: Coverage
|
||||||
|
run: codecov
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: CTFd CI
|
name: CTFd Postgres CI
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -21,10 +21,6 @@ jobs:
|
|||||||
--health-interval 10s
|
--health-interval 10s
|
||||||
--health-timeout 5s
|
--health-timeout 5s
|
||||||
--health-retries 5
|
--health-retries 5
|
||||||
mysql:
|
|
||||||
image: mysql
|
|
||||||
ports:
|
|
||||||
- 3306:3306
|
|
||||||
redis:
|
redis:
|
||||||
image: redis
|
image: redis
|
||||||
ports:
|
ports:
|
||||||
@@ -33,7 +29,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ['3.6']
|
python-version: ['3.6']
|
||||||
TESTING_DATABASE_URL: ['mysql+pymysql://root@localhost/ctfd', 'sqlite://', 'postgres://postgres@localhost/ctfd']
|
TESTING_DATABASE_URL: ['postgres://postgres@localhost/ctfd']
|
||||||
|
|
||||||
name: Python ${{ matrix.python-version }}
|
name: Python ${{ matrix.python-version }}
|
||||||
steps:
|
steps:
|
||||||
@@ -47,11 +43,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
python -m pip install -r development.txt
|
python -m pip install -r development.txt
|
||||||
sudo yarn install --non-interactive
|
|
||||||
sudo yarn global add prettier@1.17.0
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: make lint
|
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: |
|
run: |
|
||||||
44
.github/workflows/sqlite.yml
vendored
Normal file
44
.github/workflows/sqlite.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
name: CTFd SQLite CI
|
||||||
|
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: ['3.6']
|
||||||
|
TESTING_DATABASE_URL: ['sqlite://']
|
||||||
|
|
||||||
|
name: Python ${{ matrix.python-version }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
architecture: x64
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
python -m pip install -r development.txt
|
||||||
|
sudo yarn install --non-interactive
|
||||||
|
sudo yarn global add prettier@1.17.0
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: make lint
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
sudo rm -f /etc/boto.cfg
|
||||||
|
make test
|
||||||
|
env:
|
||||||
|
AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
|
||||||
|
AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
||||||
|
|
||||||
|
- name: Coverage
|
||||||
|
run: codecov
|
||||||
|
|
||||||
@@ -5,7 +5,6 @@ cache:
|
|||||||
- yarn
|
- yarn
|
||||||
services:
|
services:
|
||||||
- mysql
|
- mysql
|
||||||
- postgresql
|
|
||||||
- redis-server
|
- redis-server
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
@@ -17,7 +16,6 @@ addons:
|
|||||||
env:
|
env:
|
||||||
- TESTING_DATABASE_URL='mysql+pymysql://root@localhost/ctfd'
|
- TESTING_DATABASE_URL='mysql+pymysql://root@localhost/ctfd'
|
||||||
- TESTING_DATABASE_URL='sqlite://'
|
- TESTING_DATABASE_URL='sqlite://'
|
||||||
- TESTING_DATABASE_URL='postgres://postgres@localhost/ctfd'
|
|
||||||
python:
|
python:
|
||||||
- 3.6
|
- 3.6
|
||||||
before_install:
|
before_install:
|
||||||
@@ -28,8 +26,6 @@ install:
|
|||||||
- pip install -r development.txt
|
- pip install -r development.txt
|
||||||
- yarn install --non-interactive
|
- yarn install --non-interactive
|
||||||
- yarn global add prettier@1.17.0
|
- yarn global add prettier@1.17.0
|
||||||
before_script:
|
|
||||||
- psql -c 'create database ctfd;' -U postgres
|
|
||||||
script:
|
script:
|
||||||
- make lint
|
- make lint
|
||||||
- make test
|
- make test
|
||||||
|
|||||||
@@ -53,12 +53,15 @@ While CTFd is a standard WSGI application and most WSGI servers (e.g. gunicorn,
|
|||||||
Database Server
|
Database Server
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
CTFd makes use of SQLAlchemy and as such supports a number of SQL databases. As of CTFd 2.0, the recommended database type is MySQL. CTFd is tested and has been installed against SQLite, Postgres, and MariaDB but this could change in the future.
|
CTFd makes use of SQLAlchemy and as such supports a number of SQL databases. The recommended database type is MySQL. CTFd is tested with and has been installed against SQLite, Postgres, and MariaDB.
|
||||||
|
|
||||||
By default CTFd will create a SQLite database if no database server has been configured.
|
By default CTFd will create a SQLite database if no database server has been configured.
|
||||||
|
|
||||||
.. Note::
|
.. Note::
|
||||||
CTFd makes use of the JSON data type. MySQL >= 5.7.8 implements a proper JSON type while MariaDB does not. Small differences like these could eventually result in CTFd only supporting a few database servers.
|
CTFd makes use of the JSON data type which your database backend must support.
|
||||||
|
|
||||||
|
.. Note::
|
||||||
|
CTFd is typicaly used with MySQL, MariaDB, or SQLite. Using CTFd with Postgres is uncommon and could be deprecated in any version. Even though Postgres may be part of the CTFd test suite, using Postgres as your database backend is at your own peril. Any issues raised regarding Postgres support will carry the expectation that the issue author write an accompanying pull request to resolve said issue.
|
||||||
|
|
||||||
Caching Server
|
Caching Server
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|||||||
Reference in New Issue
Block a user