Skip to content

update publish

update publish #362

Workflow file for this run

name: Django CI
on:
pull_request:
branches:
- master
push:
branches:
- master
workflow_dispatch:
jobs:
flake8:
runs-on: ubuntu-latest
name: "flake8 on code"
steps:
- uses: actions/checkout@v4
- name: "Setup Python, Poetry and Dependencies"
uses: dsoftwareinc/setup-python-poetry-action@v1
with:
python-version: "3.12"
poetry-version: "1.8.3"
- name: Run flake8
shell: bash
run: |
poetry run flake8
test:
needs: [ 'flake8' ]
runs-on: ubuntu-latest
name: "Run tests ${{ matrix.python-version }}/${{ matrix.django-version }}/${{ matrix.broker }}"
strategy:
max-parallel: 6
matrix:
python-version: [ '3.10', '3.11', '3.12' ]
django-version: [ '5.0.7', '5.1.1' ]
broker: [ 'redis', 'fakeredis', 'valkey' ]
include:
- python-version: '3.12'
django-version: '5.1.1'
broker: 'redis'
coverage: yes
services:
redis:
image: redis:7.2.2
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
valkey:
image: valkey/valkey:8.0
ports:
- 6380:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
outputs:
version: ${{ steps.getVersion.outputs.VERSION }}
steps:
- uses: actions/checkout@v4
- name: "Setup Python, Poetry and Dependencies"
uses: dsoftwareinc/setup-python-poetry-action@v1
with:
python-version: "${{ matrix.python-version }}"
poetry-version: "1.8.3"
poetry-install-additional-args: "-E yaml"
- name: Install django version
shell: bash
run: |
python -m pip --quiet install poetry
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
poetry install -E yaml
poetry run pip install django==${{ matrix.django-version }}
- name: Get version
id: getVersion
shell: bash
run: |
VERSION=$(poetry version -s --no-ansi -n)
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Check for missing migrations
run: |
cd testproject
poetry run python manage.py makemigrations --check
- name: Run Tests without coverage
if: ${{ matrix.coverage != 'yes' }}
run: |
cd testproject
export FAKEREDIS=${{ matrix.broker == 'fakeredis' }}
if [ ${{ matrix.broker == 'valkey' }} == true ]; then
export BROKER_PORT=6380
else
export BROKER_PORT=6379
fi
poetry run python manage.py test scheduler
# Steps for coverage check
- name: Run tests with coverage
uses: ./.github/actions/test-coverage
if: ${{ matrix.coverage == 'yes' }}
with:
pythonVer: ${{ matrix.python-version }}
djangoVer: ${{ matrix.django-version }}
repoToken: ${{ secrets.GITHUB_TOKEN }}
- name: Create coverage badge
if: ${{ matrix.coverage == 'yes' && github.event_name == 'push' }}
uses: schneegans/dynamic-badges-action@v1.7.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: b756396efb895f0e34558c980f1ca0c7
filename: django-tasks-scheduler-4.json
label: coverage
message: ${{ env.COVERAGE }}%
color: green
# Prepare a draft release for GitHub Releases page for the manual verification
# If accepted and published, release workflow would be triggered
update_release_draft:
permissions:
# write permission is required to create a GitHub release
contents: write
# write permission is required for auto-labeler
# otherwise, read permission is required at least
pull-requests: write
needs: test
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}