34
CI pipeline for Django Project
Have Django project setup and test cases written to be used to check continuous integration and checking code against flake8.
With this in mind follow these steps:
Create you Django project as usual django-admin startproject <project_name>
.
Run your project with python manage.py runserver
.
Initiate git in your project if not have it yet with git init
.
Configure sensitive data like SECRET_KEYS and DEBUG_VALUE as environment variable in github repository.

Wacky Wildcards
Add the .yml file as follows .github/workflows/name.yml in the project. For more information refer to the official docs
name: Django CI
on:
push:
branches:
- '*'
- '*/*'
jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Tests
env: # environment variable
SECRET_kEY: ${{ secrets.SECRET_KEY }}
DEBUG_VALUE: ${{ secrets.DEBUG_VALUE }}
run: |
python manage.py test
- name: Lint with flake8
run: |
pip install flake8
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
${{secrets.<VARIABLE_NAME>}}
.Github repository
under MIT license
Happy coding, happy hacking ^^
34