This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/.github/workflows/ci.yml

220 lines
6.4 KiB
YAML
Raw Normal View History

name: passbook-ci
2019-12-30 09:25:35 +00:00
on:
- push
env:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
jobs:
# Linting
pylint:
runs-on: ubuntu-latest
2019-12-30 09:25:35 +00:00
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
2019-12-30 09:25:35 +00:00
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
2019-12-30 09:25:35 +00:00
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev
2019-12-30 09:25:35 +00:00
- name: Lint with pylint
run: pipenv run pylint passbook
2019-12-31 11:51:16 +00:00
black:
runs-on: ubuntu-latest
2019-12-30 09:25:35 +00:00
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
2019-12-30 09:25:35 +00:00
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
2019-12-30 09:25:35 +00:00
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev
2019-12-31 11:51:16 +00:00
- name: Lint with black
run: pipenv run black --check passbook
2019-12-30 09:25:35 +00:00
prospector:
runs-on: ubuntu-latest
2019-12-30 09:25:35 +00:00
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
2019-12-30 09:25:35 +00:00
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
2019-12-30 09:25:35 +00:00
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev && pipenv install --dev prospector --skip-lock
2019-12-30 09:25:35 +00:00
- name: Lint with prospector
run: pipenv run prospector
bandit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev
- name: Lint with bandit
run: pipenv run bandit -r passbook
2020-05-06 22:32:03 +00:00
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
2020-05-06 22:38:41 +00:00
- uses: actions/setup-python@v1
with:
python-version: '3.8'
2020-05-06 22:33:42 +00:00
- name: Install pyright
2020-05-06 22:36:13 +00:00
run: npm install -g pyright
- name: Show pyright version
run: pyright --version
2020-05-06 22:38:41 +00:00
- name: Install dependencies
run: sudo pip install -U wheel pipenv && pipenv install --dev
- name: Lint with pyright
run: pipenv run pyright
2019-12-30 09:25:35 +00:00
# Actual CI tests
migrations:
needs:
- pylint
2019-12-31 11:52:15 +00:00
- black
2019-12-30 09:25:35 +00:00
- prospector
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
ports:
- 5432:5432
redis:
image: redis:latest
ports:
- 6379:6379
runs-on: ubuntu-latest
2019-12-30 09:25:35 +00:00
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
2019-12-30 09:25:35 +00:00
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
2019-12-30 09:25:35 +00:00
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev
2019-12-30 09:25:35 +00:00
- name: Run migrations
run: pipenv run ./manage.py migrate
coverage:
needs:
- pylint
2019-12-31 11:52:15 +00:00
- black
2019-12-30 09:25:35 +00:00
- prospector
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
ports:
- 5432:5432
redis:
image: redis:latest
ports:
- 6379:6379
runs-on: ubuntu-latest
2019-12-30 09:25:35 +00:00
steps:
- uses: actions/checkout@v1
2020-03-04 20:15:44 +00:00
- uses: actions/setup-python@v1
2019-12-30 09:25:35 +00:00
with:
2020-03-04 20:15:44 +00:00
python-version: '3.8'
2019-12-30 09:25:35 +00:00
- name: Install dependencies
2020-03-04 20:13:40 +00:00
run: sudo pip install -U wheel pipenv && pipenv install --dev
2019-12-30 09:25:35 +00:00
- name: Run coverage
run: pipenv run ./scripts/coverage.sh
- name: Create XML Report
run: pipenv run coverage xml
2020-05-13 16:52:37 +00:00
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
e2e:
needs:
- pylint
- black
- prospector
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
2020-06-08 08:50:31 +00:00
- name: Setup test containers and run tests
run: |
cd e2e
2020-06-08 08:58:44 +00:00
docker-compose pull -q
docker-compose up -d
2020-06-08 08:21:22 +00:00
docker-compose exec -T passbook bash -c "pip install -r /app/requirements-dev.txt"
2020-06-08 08:57:48 +00:00
# This is temporary as we don't have selenium as a dependency yet
docker-compose exec -T passbook bash -c "pip install selenium"
2020-06-08 08:21:22 +00:00
docker-compose exec -T passbook bash -c "./manage.py test e2e"
2020-02-23 12:54:19 +00:00
# Build
build-server:
needs:
- migrations
- coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: docker build
--no-cache
-t beryju/passbook:${GITHUB_REF##*/}
-f Dockerfile .
- name: Push Docker Container to Registry
run: docker push beryju/passbook:${GITHUB_REF##*/}
build-gatekeeper:
needs:
- migrations
- coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: |
cd gatekeeper
docker build \
--no-cache \
-t beryju/passbook-gatekeeper:${GITHUB_REF##*/} \
-f Dockerfile .
- name: Push Docker Container to Registry
run: docker push beryju/passbook-gatekeeper:${GITHUB_REF##*/}
build-static:
needs:
- migrations
- coverage
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: passbook
POSTGRES_USER: passbook
POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77"
redis:
image: redis:latest
steps:
- uses: actions/checkout@v1
- name: Docker Login Registry
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- name: Building Docker Image
run: docker build
--no-cache
--network=$(docker network ls | grep github | awk '{print $1}')
-t beryju/passbook-static:${GITHUB_REF##*/}
-f static.Dockerfile .
- name: Push Docker Container to Registry
run: docker push beryju/passbook-static:${GITHUB_REF##*/}