Remove RQ dependency #534
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Django CI | |
on: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
ruff: | |
runs-on: ubuntu-latest | |
name: "ruff 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: "2.1.1" | |
- name: Run ruff | |
shell: bash | |
run: | | |
poetry run ruff check | |
test-regular: | |
needs: [ 'ruff' ] | |
runs-on: ubuntu-latest | |
name: "Run tests ${{ matrix.python-version }}/${{ matrix.django-version }}/${{ matrix.broker }}" | |
strategy: | |
max-parallel: 6 | |
matrix: | |
python-version: [ '3.11', '3.12', '3.13' ] | |
django-version: [ '5.0.7', '5.1.7' ] | |
broker: [ 'redis', 'fakeredis', 'valkey' ] | |
include: | |
- python-version: '3.12' | |
django-version: '5.1.7' | |
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: "2.1.1" | |
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 | |
if [ ${{ matrix.broker == 'valkey' }} == true ]; then | |
additional_args="-E valkey" | |
fi | |
poetry install -E yaml $additional_args | |
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 --exclude-tag multiprocess 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/[email protected] | |
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-regular | |
runs-on: ubuntu-latest | |
steps: | |
- uses: release-drafter/release-drafter@v6 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |