Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
250 commits
Select commit Hold shift + click to select a range
5a4f8dc
Update __init__.py
grumo35 Jan 31, 2022
4e7b556
Merge branch 'master' into patch-1
furlongm Feb 15, 2022
f75fc86
Merge branch 'master' into patch-1
furlongm Feb 16, 2022
bb0edca
Merge branch 'master' into patch-1
furlongm Mar 20, 2025
d284621
Merge branch 'main' into patch-1
furlongm Mar 22, 2025
92968cc
Merge branch 'main' into patch-1
furlongm Mar 22, 2025
c62ccb2
Update __init__.py
furlongm Mar 22, 2025
959d3cb
Update __init__.py
furlongm Mar 22, 2025
fc88840
Merge branch 'main' into patch-1
furlongm Mar 22, 2025
50d46d2
handle duplicate CVSSes better
furlongm Apr 23, 2025
ee684e6
Merge pull request #681 from furlongm/cvss-fix
furlongm Apr 23, 2025
5120136
reduce max charfield length for mysql
furlongm Apr 8, 2025
662d024
further reduce charfield size for mysql
furlongm Apr 18, 2025
7cff020
reduce URLField max_length to 765
furlongm Apr 29, 2025
cde2440
Merge pull request #673 from furlongm/bug/mysql-max-col-length
furlongm Apr 30, 2025
891d48f
Merge branch 'main' into patch-1
furlongm Apr 30, 2025
aeddb40
Bump django from 4.2.20 to 4.2.21
dependabot[bot] May 8, 2025
c147497
Merge pull request #682 from furlongm/dependabot/pip/django-4.2.21
furlongm May 8, 2025
f1b92c2
Bump django from 4.2.21 to 4.2.22
dependabot[bot] Jun 6, 2025
489dfec
Bump requests from 2.32.3 to 2.32.4
dependabot[bot] Jun 10, 2025
b66fb1c
Merge pull request #684 from furlongm/dependabot/pip/django-4.2.22
furlongm Jun 10, 2025
1638fbd
Merge pull request #685 from furlongm/dependabot/pip/requests-2.32.4
furlongm Jun 10, 2025
3559762
Remove unused dependency 'chardet' from requirements.txt
Jul 17, 2025
518afd4
Merge pull request #689 from vtalos/remove-unused-chardet
furlongm Jul 17, 2025
08e37c6
get_or_create_module only returns module
furlongm Aug 6, 2025
82087ec
Bump django from 4.2.22 to 4.2.24
dependabot[bot] Sep 10, 2025
c38506b
Merge pull request #700 from furlongm/dependabot/pip/django-4.2.24
furlongm Sep 10, 2025
f8c0e72
Merge pull request #693 from furlongm/module-creation
furlongm Sep 10, 2025
36decd5
Package types are in the Package class
willfurnell Sep 12, 2025
663a0a8
Merge pull request #701 from willfurnell/package-fix
furlongm Sep 15, 2025
c7e54c5
Bump django from 4.2.24 to 4.2.25
dependabot[bot] Oct 1, 2025
a36cbfc
Merge pull request #704 from furlongm/dependabot/pip/django-4.2.25
furlongm Oct 3, 2025
d52251e
bump redis
furlongm Oct 3, 2025
c3697d8
Update license in common.py
furlongm Oct 3, 2025
80a2417
fix licenses
furlongm Oct 3, 2025
2a9b67a
use GPL-3.0-only for debian copyright
furlongm Oct 3, 2025
f5b69f3
Merge pull request #377 from grumo35/patch-1
furlongm Oct 21, 2025
7ae40dc
fix tag handling
furlongm Oct 21, 2025
ee13ad3
fix some flake8-bugbear bugs
furlongm Oct 22, 2025
01a6172
Merge pull request #711 from furlongm/bugbear
furlongm Oct 22, 2025
edeb21c
Merge pull request #710 from furlongm/tags
furlongm Oct 30, 2025
346b02c
fix package filter list for errata
furlongm Oct 30, 2025
c4caf0c
add support for zstd compression in deb and rpm repos
furlongm Oct 30, 2025
189f79b
Merge pull request #708 from furlongm/zstd-support
furlongm Oct 30, 2025
7532d95
Merge pull request #713 from furlongm/package-errata-fix
furlongm Oct 30, 2025
b90a04b
simplify logging
furlongm Oct 30, 2025
847946d
Merge pull request #714 from furlongm/logging
furlongm Oct 30, 2025
f46b57b
use redis for caching and use locks for tasks
furlongm Oct 30, 2025
652333f
add errata source options to config file
furlongm Apr 18, 2025
7cca806
Merge pull request #716 from furlongm/errata-source-options
furlongm Oct 30, 2025
9cdc15a
Merge pull request #715 from furlongm/redis-caching
furlongm Oct 30, 2025
78d76b5
remove daily cronjob in favour of patchman-celery
furlongm May 15, 2025
c67e972
Merge pull request #717 from furlongm/cronjob
furlongm Oct 30, 2025
0699d4b
add isort check
furlongm Oct 31, 2025
9a002e8
Merge pull request #718 from furlongm/isort
furlongm Oct 31, 2025
4c760e2
Bump django from 4.2.25 to 4.2.26
dependabot[bot] Nov 6, 2025
1a08cba
Merge pull request #719 from furlongm/dependabot/pip/django-4.2.26
furlongm Nov 6, 2025
38857de
Bump django from 4.2.26 to 4.2.27
dependabot[bot] Dec 3, 2025
5c69d4e
Merge pull request #720 from furlongm/dependabot/pip/django-4.2.27
furlongm Dec 10, 2025
206c415
Modified tag handling to preserve case
RicardoJeronimo Dec 20, 2025
9830608
fix same module in different repos
furlongm Dec 17, 2025
731027a
Merge pull request #723 from RicardoJeronimo/tags
furlongm Jan 1, 2026
00631a5
Merge pull request #725 from furlongm/modules-fix
furlongm Jan 1, 2026
e5ae168
add priority queues for tasks (#724)
furlongm Jan 1, 2026
0c50d4c
update celery services handling (#726)
furlongm Jan 8, 2026
cbbd43b
remove non-present middleware (#729)
furlongm Jan 9, 2026
7f7976f
fix wsgi so rpm module is only loaded once (#728)
furlongm Jan 9, 2026
bbae0b4
give systemd units usable defaults (#727)
furlongm Jan 9, 2026
f5ec1dc
use consistent users/groups on rhel/debian (#730)
furlongm Jan 9, 2026
b7ec000
fixes for dumping/loading fixtures from sqlite (#731)
furlongm Jan 10, 2026
e54ce49
update logging to log to console and celery systemd units (#732)
furlongm Jan 10, 2026
191db74
switch to django-tables2
furlongm Jan 12, 2026
cd173bc
add django2-select2 functionality
furlongm Jan 14, 2026
83f96f3
update host and package templates
furlongm Jan 14, 2026
fa2c3e8
prefer triangles over chevrons
furlongm Jan 14, 2026
26c74a3
fix table column alignments and cell contents
furlongm Jan 14, 2026
a730a4f
fix OS tables and add dropdown menu
furlongm Jan 14, 2026
7bdf1f2
fix broken rocky links
furlongm Jan 14, 2026
4c8af9e
move navbar to side
furlongm Jan 14, 2026
14b7fd0
fix datetime issues using timezone
furlongm Jan 14, 2026
7024c33
add collapsible sidebar
furlongm Jan 14, 2026
257686f
table tweaks
furlongm Jan 23, 2026
d597153
add more generic approach to handling redhat references
furlongm Jan 23, 2026
4afc05d
Bump django-select2 from 8.3.0 to 8.4.1
dependabot[bot] Jan 23, 2026
83d4a92
rest api report uploads
furlongm Feb 1, 2026
f8478c6
api tests
furlongm Feb 1, 2026
92fffaa
update tests
furlongm Feb 2, 2026
909a096
update README
furlongm Apr 18, 2025
1ed23f7
update installation instructions
furlongm Apr 18, 2025
c099919
update installation instructions
furlongm Feb 2, 2026
21c7f91
auto-commit to update version
furlongm Feb 2, 2026
a8b82a0
auto-commit to update debian changelog
furlongm Feb 2, 2026
66e9885
update installation docs
furlongm Feb 2, 2026
5474155
auto-commit to update version
furlongm Feb 2, 2026
2253cec
auto-commit to update debian changelog
furlongm Feb 2, 2026
403ac39
clarify that only the rhel server is missing packages
furlongm Feb 2, 2026
138b43b
don't lowercase versions
furlongm Feb 3, 2026
05e08b7
auto-commit to update version
furlongm Feb 3, 2026
f8e79e0
auto-commit to update debian changelog
furlongm Feb 3, 2026
52248dd
add further host API filtering
furlongm Feb 3, 2026
03eb0cc
auto-commit to update version
furlongm Feb 3, 2026
f516197
auto-commit to update debian changelog
furlongm Feb 3, 2026
3e67a23
allow filtering hosts by tag
furlongm Feb 3, 2026
c641cac
fix typo in splitting
furlongm Feb 3, 2026
1529470
add version to ui
furlongm Feb 3, 2026
6f192f0
auto-commit to update version
furlongm Feb 3, 2026
2c3ed9e
auto-commit to update debian changelog
furlongm Feb 3, 2026
6f3034c
add missing imports
furlongm Feb 3, 2026
8bb1f59
auto-commit to update version
furlongm Feb 3, 2026
31d7a52
auto-commit to update debian changelog
furlongm Feb 3, 2026
ed3a95d
Bump django from 4.2.27 to 4.2.28
dependabot[bot] Feb 3, 2026
18fa86f
update workflows
furlongm Feb 3, 2026
ab9c383
auto-commit to update version
furlongm Feb 4, 2026
6ddf47d
auto-commit to update debian changelog
furlongm Feb 4, 2026
26ba51a
bump build images
furlongm Feb 4, 2026
b34a31a
auto-commit to update version
furlongm Feb 4, 2026
03d7c3d
auto-commit to update debian changelog
furlongm Feb 4, 2026
ca04746
fix test warnings
furlongm Feb 6, 2026
8102396
client updates
furlongm Feb 6, 2026
b26baf8
fix osrelease from rocky/alma/epel errata
furlongm Feb 6, 2026
4ab043a
alma/rhel fixes for osrelease_name
furlongm Feb 8, 2026
e9fa981
fix url-encoded kernel version
furlongm Feb 8, 2026
8edb1d1
remove unneeded test
furlongm Feb 8, 2026
4a2531b
fix test: AlmaLinux normalizes to 'Alma Linux' with space
furlongm Feb 8, 2026
0fd45b3
auto-commit to update version
furlongm Feb 8, 2026
67a0163
auto-commit to update debian changelog
furlongm Feb 8, 2026
19f99d5
update workflows to allow prereleases
furlongm Feb 11, 2026
db56b29
use python3.9 compatible syntax
furlongm Feb 11, 2026
1505559
add ordering migrations
furlongm Feb 11, 2026
c5a568a
remove makemigrations from install scripts
furlongm Feb 11, 2026
23998d6
workflow fix for rpms
furlongm Feb 11, 2026
37ec1c3
auto-commit to update version
furlongm Feb 11, 2026
85732cf
auto-commit to update debian changelog
furlongm Feb 11, 2026
61decc0
deb build fix for releases
furlongm Feb 11, 2026
3261e63
auto-commit to update debian changelog
furlongm Feb 11, 2026
a217f2d
trigger security updates task on first run
furlongm Feb 13, 2026
9b722f8
remove celery deprecation warning
furlongm Feb 13, 2026
2061243
add cached count fields to avoid expensive COUNT queries
furlongm Feb 11, 2026
90ec045
add further sql optimizations
furlongm Feb 12, 2026
b03bc47
add .iterator() to large queryset loops
furlongm Feb 13, 2026
9eb83e8
address template double-count issues
furlongm Feb 13, 2026
5654e1f
move imports to top-level
furlongm Feb 13, 2026
7b95a51
replace o(n²) comparisons with id sets and sql aggregation
furlongm Feb 13, 2026
93af23d
consolidate and improve homogenous host update logic
furlongm Feb 13, 2026
fe25a12
add cached count fields to erratum model with m2m signals
furlongm Feb 13, 2026
152b2f7
auto-commit to update version
furlongm Feb 26, 2026
36b2727
auto-commit to update debian changelog
furlongm Feb 26, 2026
7b8d3ed
add WSGIPassAuthorization for v2 api with mod_wsgi
furlongm Feb 26, 2026
76dbfe0
handle ubuntu versioning without patch release
furlongm Feb 26, 2026
f58e939
auto-commit to update version
furlongm Feb 26, 2026
24df4c3
auto-commit to update debian changelog
furlongm Feb 26, 2026
9315e1a
fix warnings and errors on debian packaging
furlongm Feb 27, 2026
a353843
fix overwriting cached update counts with save
furlongm Feb 27, 2026
aa17bc1
auto-commit to update version
furlongm Feb 28, 2026
c300e18
auto-commit to update debian changelog
furlongm Feb 28, 2026
c4a87ac
prefer update_fields over refresh_from_db
furlongm Feb 28, 2026
3fe8675
better handling of kernel updates
furlongm Feb 28, 2026
bc2c4ee
auto-commit to update version
furlongm Mar 1, 2026
78cfbf8
auto-commit to update debian changelog
furlongm Mar 1, 2026
521ac64
handle priorities in kernel updates
furlongm Mar 1, 2026
f4bb03e
auto-commit to update version
furlongm Mar 2, 2026
fc4d74a
auto-commit to update debian changelog
furlongm Mar 2, 2026
9c2fdbd
address mysql utf8mb4 composite index sizes
furlongm Mar 3, 2026
e808294
auto-commit to update version
furlongm Mar 3, 2026
b8fc93e
auto-commit to update debian changelog
furlongm Mar 3, 2026
eb09bfe
fix overly aggressive mysql truncation
furlongm Mar 4, 2026
03f2aae
auto-commit to update version
furlongm Mar 4, 2026
2002d66
auto-commit to update debian changelog
furlongm Mar 4, 2026
d33fb34
Bump django from 4.2.28 to 4.2.29
dependabot[bot] Mar 4, 2026
3f01210
fix cvss model to match released migration 0010
furlongm Mar 5, 2026
9363830
auto-commit to update version
furlongm Mar 5, 2026
e5def0e
auto-commit to update debian changelog
furlongm Mar 5, 2026
e941cc7
handle malformed repos better
furlongm Mar 5, 2026
4eb2793
fix metalink parsing error
furlongm Mar 5, 2026
4b91cd7
add dry-run mode to client
furlongm Mar 5, 2026
b3b669d
improve client error output
furlongm Mar 5, 2026
6449192
option to get apt updates on debian
furlongm Mar 5, 2026
5219ff1
improve duplicate arch removal handling
furlongm Mar 5, 2026
23a7728
improve reboot detection
furlongm Mar 5, 2026
7986b55
add shellcheck disables for client
furlongm Mar 5, 2026
d7c239c
use pysqlite3 if available
furlongm Mar 5, 2026
3c8f42f
update yum hook
furlongm Mar 6, 2026
d1119d6
add helpful client debug and verbose output
furlongm Mar 6, 2026
1b6c539
fix repo/mirror bulk delete bug
furlongm Mar 5, 2026
8567ac1
ensure host errata are tracked and updated
furlongm Mar 6, 2026
f0f0245
auto-commit to update version
furlongm Mar 6, 2026
02e21db
auto-commit to update debian changelog
furlongm Mar 6, 2026
2ef0864
Bump requests from 2.32.4 to 2.33.0
dependabot[bot] Mar 26, 2026
0e392a0
use sets instead of lists for update tracking
furlongm Mar 6, 2026
eea7d6d
merge duplicate update-finding methods into find_repo_updates
furlongm Mar 27, 2026
84cc429
remove underscore prefix from kernel helper methods
furlongm Mar 31, 2026
de53ae7
don't rename repos from client reports
furlongm Mar 31, 2026
b96e4f7
filter deb kernel updates by major.minor series
furlongm Mar 31, 2026
a0384a0
add package updates list view with table, filters, and nav entry
furlongm Mar 5, 2026
c137276
add sortable columns to package list and name detail views
furlongm Mar 31, 2026
71c97d3
Bump django from 4.2.29 to 4.2.30
dependabot[bot] Apr 8, 2026
57b88f4
add celery worker resilience for database connection timeouts
furlongm Apr 11, 2026
9d04908
auto-enable wal mode for sqlite backend
furlongm Apr 11, 2026
5eb5e52
fix duplicate verbose_name_plural in report model meta
furlongm Apr 7, 2026
ad8d648
sanitize filter_params in bulk action views
furlongm Apr 7, 2026
e2fed70
add null guard for missing references element in updateinfo xml
furlongm Apr 7, 2026
0c30dcb
return early on yaml parse error in extract_module_metadata
furlongm Apr 7, 2026
578e4a3
fix null url handling in osv.dev cve references
furlongm Apr 2, 2026
bb53742
send info messages to stdout instead of stderr
furlongm Apr 1, 2026
4cfad1e
add select_related to django-admin's host repo list view
cpoppema Apr 20, 2026
d16a4f7
extend select_related in HostManager with osvariant__arch
cpoppema Apr 20, 2026
6b02d66
add select related to host list and host detail views
cpoppema Apr 20, 2026
f09da91
add annotate and prefetch_related for counts to operatingsystem list …
cpoppema Apr 20, 2026
6b32ad3
optimize query count and duration for package views
cpoppema Apr 20, 2026
9ee498c
add annotate for counts to repos list view
cpoppema Apr 20, 2026
c5b17e4
add annotate and prefetch_related for counts to security views
cpoppema Apr 20, 2026
8f7f842
add db index for Report.created
cpoppema Apr 20, 2026
63d7e03
optimize query count and duration for dashboard view
cpoppema Apr 20, 2026
107a8f0
prevent executing context_processors.issues_count unnecessarily
cpoppema Apr 20, 2026
159ceca
move function-level import to top-level
furlongm Apr 14, 2026
847964a
bulk db optimizations for errata processing
furlongm Apr 22, 2026
df5c2be
Merge branch 'main' into reduce-query-counts
furlongm Apr 22, 2026
15a95a1
fix line length mirror query in util/views.py
cpoppema Apr 22, 2026
eddce88
fix single blank line after class definition in packages/admin.py
cpoppema Apr 22, 2026
5c92135
add concurrent processing with deadlock workaround and progress bar f…
furlongm Apr 15, 2026
8751b32
add fetch_concurrently helper function
furlongm Apr 22, 2026
0d82f3a
fix: deb kernel meta-packages bypass series check causing false HWE u…
mhrznamn068 Apr 23, 2026
bba4d20
fix: skip meta-packages in deb kernel series check instead of falling…
mhrznamn068 Apr 23, 2026
397fbf1
add ubuntu 26.04 resolute codename
furlongm Apr 25, 2026
b83d928
instead of prefetch_related for repos.count fix REPOS_OSRELEASE_TEMPLATE
cpoppema Apr 25, 2026
ed6881d
revert removing .distinct() for packages/views.py:package_name_list
cpoppema Apr 25, 2026
0fbb318
Bump gitpython from 3.1.44 to 3.1.47
dependabot[bot] Apr 26, 2026
98cf20e
auto-commit to update version
furlongm Apr 29, 2026
e9b63e5
auto-commit to update debian changelog
furlongm Apr 29, 2026
e5661ec
django 5.2 compatibility updates
furlongm Apr 1, 2026
a7cbfc2
fix zstd decompression for python 3.13+ stdlib compression.zstd
furlongm Apr 30, 2026
36b09e4
skip decompression when content is already text
furlongm May 1, 2026
8802994
change erratum synopsis from CharField(255) to TextField
furlongm May 2, 2026
2878563
rename functions to match codebase style
furlongm Apr 23, 2026
f8619d5
handle non-http(s) mirror urls gracefully
furlongm May 5, 2026
c5618b0
escape filterlist values
furlongm May 5, 2026
bbad64a
auto-commit to update version
furlongm May 7, 2026
eebe11d
auto-commit to update debian changelog
furlongm May 7, 2026
5348d04
Bump gitpython from 3.1.47 to 3.1.49
dependabot[bot] May 8, 2026
12c55ec
use gpg file with both keys on all distros
furlongm May 8, 2026
df491f2
handle backported stable releases
furlongm May 7, 2026
da9eabd
Bump gitpython from 3.1.49 to 3.1.50
dependabot[bot] May 9, 2026
4b661b8
update installation docs
furlongm May 28, 2026
205c8aa
fix tz and local_settings getting overwritten
furlongm May 28, 2026
ab2a8f5
Use underscore names in setup.cfg
mgedmin May 14, 2026
0971c1c
Use SPDX license expression in setup.py
mgedmin May 14, 2026
1581944
Merge branch 'cpoppema/reduce-query-counts' into sync-with-4.0.21
cpoppema Jul 28, 2026
2dc7d5f
Revert "fix: show orphaned packages and unprocessed reports on dashbo…
hafkensite May 24, 2024
eb5f23e
use stream extraction to reduce memory usage
furlongm May 1, 2026
67a1eb1
Merge branch '4.0.21-vg' into sync-with-4.0.21
cpoppema Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
224 changes: 123 additions & 101 deletions .github/workflows/create-release-and-upload-assets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,87 @@ on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Version to build (e.g. 4.0.9-rc1)'
required: true

permissions:
contents: write

jobs:
setup:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.set-vars.outputs.version }}
rpm_version: ${{ steps.set-vars.outputs.rpm_version }}
is_prerelease: ${{ steps.set-vars.outputs.is_prerelease }}
target_branch: ${{ steps.set-vars.outputs.target_branch }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: set-vars
run: |
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
VERSION="${{ inputs.version }}"
else
VERSION="${GITHUB_REF#refs/tags/v}"
fi
# RPM doesn't allow hyphens in version, convert to dots
RPM_VERSION="${VERSION//-/.}"
# Pre-release if version contains -, e.g. 4.0.9-rc1, 4.0.9-dev1
if [[ "$VERSION" == *-* ]]; then
IS_PRERELEASE=true
else
IS_PRERELEASE=false
fi
# Detect target branch: if tag version matches VERSION.txt, use main
# otherwise use stable-X.Y branch for backport releases
MAJOR_MINOR=$(echo "$VERSION" | grep -oP '^\d+\.\d+')
CURRENT=$(cat VERSION.txt | grep -oP '^\d+\.\d+')
if [[ "$MAJOR_MINOR" == "$CURRENT" ]]; then
TARGET_BRANCH="main"
else
TARGET_BRANCH="stable-${MAJOR_MINOR}"
fi
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "rpm_version=${RPM_VERSION}" >> $GITHUB_OUTPUT
echo "is_prerelease=${IS_PRERELEASE}" >> $GITHUB_OUTPUT
echo "target_branch=${TARGET_BRANCH}" >> $GITHUB_OUTPUT
echo "Version: $VERSION, RPM Version: $RPM_VERSION, Pre-release: $IS_PRERELEASE, Target: $TARGET_BRANCH"

create-release:
needs: setup
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- name: git fetch --all
run: |
git fetch --all
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
tag_name: v${{ needs.setup.outputs.version }}
name: Release v${{ needs.setup.outputs.version }}
draft: false
prerelease: false
- name: Create upload_url artifact
run: |
echo "${{ steps.create_release.outputs.upload_url }}" > upload_url.txt
- name: Upload upload_url artifact
uses: actions/upload-artifact@v4
with:
name: upload_url.txt
path: upload_url.txt
prerelease: ${{ needs.setup.outputs.is_prerelease }}
generate_release_notes: ${{ needs.setup.outputs.is_prerelease }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

update-version-and-changelog:
needs: create-release
needs: [setup, create-release]
if: needs.setup.outputs.is_prerelease == 'false'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
ref: ${{ needs.setup.outputs.target_branch }}
- name: git fetch --all
run: |
git fetch --all
Expand All @@ -59,10 +102,10 @@ jobs:
auto-commit to update version
skip-checks: true
run: |
echo "${{ github.ref }}" | cut -dv -f2 > VERSION.txt
echo "${{ needs.setup.outputs.version }}" > VERSION.txt
git add VERSION.txt
git diff --quiet && git diff --staged --quiet || git commit -m "${COMMIT_MSG}"
git push origin main
git push origin ${{ needs.setup.outputs.target_branch }}
- name: Update debian changelog
env:
EMAIL: furlongm@gmail.com
Expand All @@ -71,13 +114,16 @@ jobs:
auto-commit to update debian changelog
skip-checks: true
run: |
gbp dch --new-version=$(cat VERSION.txt)-1 --release --distribution=stable --spawn-editor=never --commit --commit-msg="${COMMIT_MSG}"
git push origin main
gbp dch --new-version=${{ needs.setup.outputs.version }}-1 --release --distribution=stable --spawn-editor=never --commit --commit-msg="${COMMIT_MSG}"
git push origin ${{ needs.setup.outputs.target_branch }}

build-and-upload-deb-assets:
needs: update-version-and-changelog
needs: [setup, create-release, update-version-and-changelog]
# For pre-releases, update-version-and-changelog is skipped, so use always()
if: always() && needs.create-release.result == 'success'
runs-on: ubuntu-latest
container:
image: debian:bookworm
image: debian:trixie
steps:
- name: Install build dependencies
run: |
Expand All @@ -91,63 +137,56 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
# For stable releases, use target branch (has updated changelog); for pre-releases, use the tag
ref: ${{ needs.setup.outputs.is_prerelease == 'false' && needs.setup.outputs.target_branch || github.ref }}
- name: git fetch --all
run: |
git config --global --add safe.directory /__w/patchman/patchman
git fetch --all
- name: Get version
run: |
export version=$(echo "${{ github.ref }}" | cut -dv -f2)
echo "version=${version}" >> $GITHUB_ENV
- name: Download upload_url artifact
uses: actions/download-artifact@v4
with:
name: upload_url.txt
path: /home/runner/work/patchman/patchman
- name: Get upload_url
run: |
export upload_url=$(<upload_url.txt)
rm upload_url.txt
echo "upload_url=${upload_url}" >> $GITHUB_ENV
- name: Build deb packages
- name: Build deb packages (pre-release)
if: needs.setup.outputs.is_prerelease == 'true'
env:
EMAIL: furlongm@gmail.com
COMMIT_MSG: |
auto-commit
skip-checks: true
VERSION: ${{ needs.setup.outputs.version }}
run: |
export version=$(echo "${{ github.ref }}" | cut -dv -f2)
echo "${version}" > VERSION.txt
git add VERSION.txt
git diff --quiet && git diff --staged --quiet || git commit -m "${COMMIT_MSG}"
gbp dch --new-version=${version}-1 --release --distribution=stable --spawn-editor=never --commit --commit-msg="${COMMIT_MSG}"
git tag --delete v${version}
git tag v${version}
gbp buildpackage --git-upstream-tree=${{ github.ref }} -uc -us
- name: Upload python3-patchman deb
uses: actions/upload-release-asset@v1
echo "${VERSION}" > VERSION.txt
# Generate changelog for pre-release
cat > debian/changelog << EOF
patchman (${VERSION}-1) unstable; urgency=medium

* Pre-release ${VERSION}

-- Marcus Furlong <furlongm@gmail.com> $(date -R)
EOF
dpkg-buildpackage -us -uc -b
- name: Build deb packages (stable)
if: needs.setup.outputs.is_prerelease == 'false'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
EMAIL: furlongm@gmail.com
VERSION: ${{ needs.setup.outputs.version }}
run: |
# VERSION.txt and changelog already updated on target branch by update-version-and-changelog job
# Recreate tag to include those commits
git tag --delete v${VERSION}
git tag v${VERSION}
gbp buildpackage --git-upstream-tree=v${VERSION} -uc -us
- name: Upload deb assets
uses: softprops/action-gh-release@v2
with:
upload_url: ${{ env.upload_url }}
asset_name: ${{ format('python3-patchman_{0}-1_all.deb', env.version) }}
asset_path: ../${{ format('python3-patchman_{0}-1_all.deb', env.version) }}
asset_content_type: application/vnd.debian.binary-package
- name: Upload patchman-client deb
uses: actions/upload-release-asset@v1
tag_name: v${{ needs.setup.outputs.version }}
files: |
../python3-patchman_${{ needs.setup.outputs.version }}-1_all.deb
../patchman-client_${{ needs.setup.outputs.version }}-1_all.deb
body: ""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.upload_url }}
asset_name: ${{ format('patchman-client_{0}-1_all.deb', env.version) }}
asset_path: ../${{ format('patchman-client_{0}-1_all.deb', env.version) }}
asset_content_type: application/vnd.debian.binary-package

build-and-upload-rpm-assets:
needs: update-version-and-changelog
needs: [setup, create-release, update-version-and-changelog]
if: always() && needs.create-release.result == 'success'
runs-on: ubuntu-latest
container:
image: quay.io/centos/centos:stream9
image: quay.io/centos/centos:stream10
steps:
- name: Install build dependencies
run: |
Expand All @@ -156,49 +195,32 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
ref: ${{ needs.setup.outputs.is_prerelease == 'false' && needs.setup.outputs.target_branch || github.ref }}
- name: git fetch --all
run: |
git config --global --add safe.directory /__w/patchman/patchman
git fetch --all
- name: Get version
run: |
export version=$(echo "${{ github.ref }}" | cut -dv -f2)
echo "version=${version}" >> $GITHUB_ENV
- name: Download upload_url artifact
uses: actions/download-artifact@v4
with:
name: upload_url.txt
path: /home/runner/work/patchman/patchman
- name: Get upload_url
run: |
export upload_url=$(<upload_url.txt)
rm upload_url.txt
echo "upload_url=${upload_url}" >> $GITHUB_ENV
- name: Build rpm packages
env:
VERSION: ${{ needs.setup.outputs.rpm_version }}
run: |
echo "${VERSION}" > VERSION.txt
python3 setup.py bdist_rpm --python=/usr/bin/python3
rpmbuild -bb patchman-client.spec
- name: Upload patchman rpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload rpm assets
uses: softprops/action-gh-release@v2
with:
upload_url: ${{ env.upload_url }}
asset_name: ${{ format('patchman-{0}-1.noarch.rpm', env.version) }}
asset_path: ${{ format('dist/patchman-{0}-1.noarch.rpm', env.version) }}
asset_content_type: application/x-rpm
- name: Upload patchman-client rpm
uses: actions/upload-release-asset@v1
tag_name: v${{ needs.setup.outputs.version }}
files: |
dist/patchman-${{ needs.setup.outputs.rpm_version }}-1.noarch.rpm
dist/noarch/patchman-client-${{ needs.setup.outputs.rpm_version }}-1.noarch.rpm
body: ""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.upload_url }}
asset_name: ${{ format('patchman-client-{0}-1.noarch.rpm', env.version) }}
asset_path: ${{ format('dist/noarch/patchman-client-{0}-1.noarch.rpm', env.version) }}
asset_content_type: application/x-rpm

upload-package-to-pypi:
needs: update-version-and-changelog
needs: [setup, create-release]
if: needs.setup.outputs.is_prerelease == 'false'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -208,7 +230,7 @@ jobs:
python-version: '3.x'
- name: Set version
run: |
echo "${{ github.ref }}" | cut -dv -f2 > VERSION.txt
echo "${{ needs.setup.outputs.version }}" > VERSION.txt
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/lint-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
max-parallel: 5
matrix:
python-version: ['3.x']
python-version: ['3.13']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
Expand All @@ -28,6 +28,10 @@ jobs:
pip install flake8
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --max-line-length=120 --show-source --statistics
- name: Check isort
run: |
pip install isort
isort --check --profile=django .
- name: Set secret key
run: ./sbin/patchman-set-secret-key
- name: Test with django
Expand Down
9 changes: 6 additions & 3 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,24 @@ vim VERSION.txt # modify version
git add VERSION.txt
version=$(<VERSION.txt)
git commit -m "Release v${version}"
git tag v${version}
```

# Build DEB package

```shell
sudo apt -y install python3-setuptools debhelper dh-exec dh-python git-buildpackage
gbp dch --commit
gbp buildpackage -uc -us
version=$(<VERSION.txt)
gbp dch --commit --new-version=${version}-1 --release --distribution=stable
git tag v${version}
gbp buildpackage -uc -us --git-upstream-tree=main
```

# Build RPM packages

```shell
sudo dnf -y install rpm-build git python3-setuptools
version=$(<VERSION.txt)
git tag v${version}
python3 setup.py bdist_rpm --python=/usr/bin/python3
rpmbuild -bb patchman-client.spec
```
Loading
Loading