name: Django CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest strategy: max-parallel: 4 matrix: python-version: [ 3.6, 3.7, 3.8, 3.9 ] steps: - name: Start MySQL uses: samin/mysql-action@v1.3 with: host port: 3306 container port: 3306 character set server: utf8mb4 collation server: utf8mb4_general_ci mysql version: latest mysql root password: root mysql database: djangoblog mysql user: root mysql password: root - name: Configure sysctl limits run: | sudo swapoff -a sudo sysctl -w vm.swappiness=1 sudo sysctl -w fs.file-max=262144 sudo sysctl -w vm.max_map_count=262144 - uses: miyataka/elasticsearch-github-actions@1 with: stack-version: '7.12.1' plugins: 'https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip' - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 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: DJANGO_MYSQL_PASSWORD: root DJANGO_MYSQL_HOST: 127.0.0.1 DJANGO_ELASTICSEARCH_HOST: 127.0.0.1:9200 run: | python manage.py makemigrations python manage.py migrate coverage run manage.py test coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v1