Skip to content

[feature/remove-template-fields] Cleanup #3167

[feature/remove-template-fields] Cleanup

[feature/remove-template-fields] Cleanup #3167

name: Continuous Integration
on:
pull_request:
branches:
- main
- 'feature/**'
env:
PYTHON_VERSION: 3.10.x
jobs:
build-production-image:
name: Build and test production docker image
runs-on: ubuntu-22.04
defaults:
run:
working-directory: .github/docker-compose
steps:
- uses: actions/checkout@v2
- name: Create secrets for datastore
run: mkdir secrets && echo -n "openslides" > secrets/postgres_password
- name: Run docker production image
run: docker-compose -f docker-compose.prod.yml up -d
- name: Wait for action service
# we have to execute this inside the container since the port to the outside is opened directly after the
# container started, while the code itself is not ready yet
run: docker-compose -f docker-compose.prod.yml exec -T backend-action scripts/wait.sh backend-action 9002
- name: Wait for presenter service
# we have to execute this inside the container since the port to the outside is opened directly after the
# container started, while the code itself is not ready yet
run: docker-compose -f docker-compose.prod.yml exec -T backend-presenter scripts/wait.sh backend-presenter 9003
- name: Fire a test request to actions component
run: curl localhost:9002/system/action/health
- name: Fire a test request to presenter component
run: curl localhost:9003/system/presenter/health
build-and-test-dev-image:
name: Build and test development docker image with Docker Compose
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: dev/run-tests.sh
check-coding-style:
name: Check coding style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install requirements
run: . requirements/export_datastore_commit.sh && pip install --requirement requirements/requirements_development.txt
- name: Check black
if: always()
run: black --check --diff openslides_backend/ tests/ cli/
- name: Check isort
if: always()
run: isort --check-only --diff openslides_backend/ tests/ cli/
- name: Check flake8
if: always()
run: make flake8
- name: Check mypy
if: always()
run: make mypy
check-models-all:
name: Check from models.yml up to permissions and jsons
runs-on: ubuntu-latest
env:
PYTHONPATH: .
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install requirements
run: . requirements/export_datastore_commit.sh && pip install --requirement requirements/requirements_development.txt
- name: Validate models.yml
if: always()
run: make validate-models-yml
- name: Check for up to date models.py
if: always()
run: make check-models
- name: Check for up to date permissions.py
if: always()
run: make check-permissions
- name: Check initial-data.json
if: always()
run: make check-initial-data-json
- name: Check example-data.json
if: always()
run: make check-example-data-json