Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 13 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,21 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: ⬆
interval: "monthly"

groups:
gha-updates:
patterns:
- "*"

# Python
- package-ecosystem: "pip"
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "daily"
interval: "monthly"
commit-message:
prefix: ⬆
groups:
uv-updates:
patterns:
- "*"
10 changes: 5 additions & 5 deletions .github/workflows/debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,26 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Set up Python ${{ github.event.inputs.python-version }}
uses: actions/setup-python@v6
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
id: sp
with:
python-version: ${{ github.event.inputs.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b
with:
enable-cache: true
- name: Install Just
uses: extractions/setup-just@v3
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff
- name: Install Dependencies
run: |
just setup ${{ steps.sp.outputs.python-path }}
- name: Install Emacs
run: |
sudo apt install emacs
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3.23
uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101
with:
detached: true
timeout-minutes: 60
10 changes: 5 additions & 5 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,19 @@ jobs:
TEST_DJANGO_VERSION: ${{ matrix.django-version }}

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b
with:
enable-cache: true
- name: Install Just
uses: extractions/setup-just@v3
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff
- name: Install Dependencies
run: |
just setup ${{ steps.sp.outputs.python-path }}
Expand All @@ -83,7 +83,7 @@ jobs:
sudo apt install emacs
- name: Setup tmate session
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@v3.23
uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101
with:
detached: true
timeout-minutes: 60
Expand Down
50 changes: 29 additions & 21 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ concurrency:
on:
push:
tags:
- 'v*' # only publish on version tags (e.g. v1.0.0)
- 'v[0-9]*.[0-9]*.[0-9]*' # only publish on version tags (e.g. v1.0.0)

jobs:

Expand All @@ -20,14 +20,14 @@ jobs:
contents: read
actions: write
uses: ./.github/workflows/lint.yml
secrets: inherit

test:
permissions:
contents: read
actions: write
uses: ./.github/workflows/test.yml
secrets: inherit
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

build:
name: Build Package
Expand All @@ -39,18 +39,22 @@ jobs:
PACKAGE_NAME: ${{ steps.set-package.outputs.package_name }}
RELEASE_VERSION: ${{ steps.set-package.outputs.release_version }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: true
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
id: sp
with:
python-version: "3.12" # for tomlib
python-version: "==3.14" # for tomlib
- name: Install uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b
with:
enable-cache: true
restore-cache: false
save-cache: false
- name: Setup Just
uses: extractions/setup-just@v3
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff
- name: Install Dependencies
run: |
just setup ${{ steps.sp.outputs.python-path }}
Expand All @@ -63,18 +67,18 @@ jobs:
git fetch --force origin refs/tags/$TAG_NAME:refs/tags/$TAG_NAME

# verify signature
curl -sL https://github.com/${{ github.actor }}.gpg | gpg --import
curl -sL "https://github.com/${GITHUB_ACTOR}.gpg" | gpg --import
git tag -v "$TAG_NAME"

# verify version
RELEASE_VERSION=$(just validate_version $TAG_NAME)

# export the release version
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV
- name: Build the binary wheel and a source tarball
run: just build
- name: Store the distribution packages
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
with:
name: python-package-distributions
path: dist/
Expand All @@ -99,12 +103,12 @@ jobs:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@v7
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1.13
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e

github-release:
name: Publish GitHub Release
Expand All @@ -119,35 +123,39 @@ jobs:

steps:
- name: Download all the dists
uses: actions/download-artifact@v7
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: python-package-distributions
path: dist/
- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@v3.2.0
uses: sigstore/gh-action-sigstore-python@a5caf349bc536fbef3668a10ed7f5cd309a4b53d
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
run: >-
gh release create
'${{ github.ref_name }}'
--repo '${{ github.repository }}'
"$GITHUB_REF_NAME"
--repo "$GITHUB_REPOSITORY"
--generate-notes
--prerelease
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release upload
'${{ github.ref_name }}' dist/**
--repo '${{ github.repository }}'
"$GITHUB_REF_NAME" dist/**
--repo "$GITHUB_REPOSITORY"

publish-to-testpypi:
name: Publish to TestPyPI
Expand All @@ -164,12 +172,12 @@ jobs:

steps:
- name: Download all the dists
uses: actions/download-artifact@v7
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1.13
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
8 changes: 4 additions & 4 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ jobs:

steps:
- name: "Checkout code"
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.3
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a
with:
results_file: results.sarif
results_format: sarif
Expand All @@ -47,7 +47,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
with:
name: SARIF file
path: results.sarif
Expand All @@ -56,6 +56,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@v4
uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2
with:
sarif_file: results.sarif
Loading
Loading