Skip to content

feat:add job-class kwarg to rqworker (#160) #342

feat:add job-class kwarg to rqworker (#160)

feat:add job-class kwarg to rqworker (#160) #342

Workflow file for this run

name: Django CI
on:
pull_request_target:
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.fake-redis }}"
strategy:
max-parallel: 6
matrix:
python-version: [ '3.10', '3.11', '3.12' ]
django-version: [ '5.0.7', '5.1.1' ]
fake-redis: ['True', 'False']
include:
- python-version: '3.12'
django-version: '5.1.1'
fake-redis: 'False'
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
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.fake-redis }}
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 }}