ci: migrate unittests and coverage

This commit is contained in:
Jens Langhammer 2020-05-28 19:29:28 +02:00
parent cfc8d0a0f7
commit 1ed7e900f2
3 changed files with 77 additions and 26 deletions

View File

@ -50,31 +50,7 @@ pipenv sync -d
``` ```
Since passbook uses PostgreSQL-specific fields, you also need a local PostgreSQL instance to develop. passbook also uses redis for caching and message queueing. Since passbook uses PostgreSQL-specific fields, you also need a local PostgreSQL instance to develop. passbook also uses redis for caching and message queueing.
For these databases you can use [Postgres.app](https://postgresapp.com/) and [Redis.app](https://jpadilla.github.io/redisapp/) on macOS or use it via docker-comppose: For these databases you can use [Postgres.app](https://postgresapp.com/) and [Redis.app](https://jpadilla.github.io/redisapp/) on macOS or use it the docker-compose file in `scripts/docker-compose.yml`.
```yaml
version: '3.7'
services:
postgresql:
container_name: postgres
image: postgres:11
volumes:
- db-data:/var/lib/postgresql/data
ports:
- 127.0.0.1:5432:5432
restart: always
redis:
container_name: redis
image: redis
ports:
- 127.0.0.1:6379:6379
restart: always
volumes:
db-data:
driver: local
```
To tell passbook about these databases, create a file in the project root called `local.env.yml` with the following contents: To tell passbook about these databases, create a file in the project root called `local.env.yml` with the following contents:

View File

@ -57,7 +57,7 @@ stages:
pipenv install --dev prospector --skip-lock pipenv install --dev prospector --skip-lock
- task: CmdLine@2 - task: CmdLine@2
inputs: inputs:
script: pipenv run prospector --check passbook script: pipenv run prospector passbook
- job: bandit - job: bandit
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
@ -92,3 +92,53 @@ stages:
- task: CmdLine@2 - task: CmdLine@2
inputs: inputs:
script: pipenv run pyright script: pipenv run pyright
- stage: Test
jobs:
- job: migrations
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/docker-compose.yml'
action: 'Run services'
buildImages: false
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run ./manage.py migrate
- job: coverage
pool:
vmImage: 'ubuntu-latest'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
- task: DockerCompose@0
displayName: Run services
inputs:
dockerComposeFile: 'scripts/docker-compose.yml'
action: 'Run services'
buildImages: false
- task: CmdLine@2
inputs:
script: |
sudo pip install -U wheel pipenv
pipenv install --dev
- task: CmdLine@2
inputs:
script: pipenv run ./scripts/coverage.sh
- task: CmdLine@2
inputs:
script: pipenv run coverage xml
- task: CmdLine@2
inputs:
script: bash <(curl -s https://codecov.io/bash)

View File

@ -0,0 +1,25 @@
version: '3.7'
services:
postgresql:
container_name: postgres
image: postgres:11
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
ports:
- 5432:5432
restart: always
redis:
container_name: redis
image: redis
ports:
- 6379:6379
restart: always
volumes:
db-data:
driver: local