Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
61a3ad0
πŸ’₯ feat!: drop lock checks outside pull requests
gaborbernat Oct 26, 2026
48a8b70
πŸ’₯ feat!: drop tag identity and ancestry checks
gaborbernat Oct 26, 2026
a0d4058
πŸ’₯ feat!: remove the nab-git-commit input
gaborbernat Oct 26, 2026
5a6201d
πŸ’₯ feat!: stop re-checking the tag before publish
gaborbernat Oct 26, 2026
282d2fc
πŸ’₯ feat!: drop artifact shape checks on own builds
gaborbernat Oct 26, 2026
31832d7
πŸ’₯ feat!: stop prepare re-validating its own patch
gaborbernat Oct 26, 2026
ae919ec
πŸ”₯ chore: drop the main gate on the upgrade writer
gaborbernat Oct 26, 2026
ebe38c2
πŸ’₯ feat!: drop lock-tool caller input validation
gaborbernat Oct 26, 2026
172df1a
πŸ”₯ chore: drop prepare and tag input validation
gaborbernat Oct 26, 2026
7f7f522
πŸ”₯ chore: drop publisher input validation
gaborbernat Oct 26, 2026
558ea24
πŸ’₯ feat!: stop re-checking our own build output
gaborbernat Oct 26, 2026
a2f1930
πŸ”₯ chore: drop writer process guards
gaborbernat Oct 26, 2026
0345a93
πŸ”₯ chore: drop main re-runs and refresh env check
gaborbernat Oct 26, 2026
fdc76f5
✨ feat: update the existing draft on reruns
gaborbernat Oct 26, 2026
99a72d5
✨ feat: run news checks only for touched files
gaborbernat Oct 26, 2026
9c1ffc7
πŸ§ͺ test: drop release-creator error assertions
gaborbernat Oct 26, 2026
56c7f5c
πŸ’₯ feat!: name every job and step with an emoji
gaborbernat Oct 26, 2026
522076e
⬆️ build: use release-creator 4.0.0
gaborbernat Oct 26, 2026
9e6fa33
πŸ”Š feat: explain each step's choices
gaborbernat Oct 26, 2026
1c36c7d
πŸ”Š feat: name the check behind every failure
gaborbernat Oct 26, 2026
f9eda44
⬆️ build: use release-creator 4.1.0
gaborbernat Oct 26, 2026
1b78a80
πŸ› fix: count inline shell blocks without a helper
gaborbernat Oct 26, 2026
4a224ba
πŸ§ͺ test: list fixture distributions in a stable order
gaborbernat Oct 26, 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
60 changes: 38 additions & 22 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
@@ -1,71 +1,76 @@
name: Check
on:
push:
branches: [main]
pull_request:
types: [opened, reopened, synchronize]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: check-${{ github.ref }}-${{ github.run_attempt > 1 && github.run_id || 'current' }}
cancel-in-progress: ${{ github.run_attempt == 1 }}
jobs:
check:
name: 🧹 Check formatting
runs-on: ubuntu-26.04
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: πŸ“₯ Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 1
persist-credentials: false
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
- name: πŸ’Ύ Restore prek cache
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/prek
key: prek-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.pre-commit-config.yaml') }}
- uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
- name: 🐍 Install uv and Python
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
with:
version: latest-known
python-version: "3.15"
enable-cache: true
cache-suffix: ${{ github.job }}
cache-dependency-glob: pyproject.toml
- name: Install release tools
- name: πŸ“¦ Install release tools
env:
EXCLUDE_NEWER: 7 days
run: |
tools/install_live_tools.sh .release-tools 'prek>=0.2'
uv run --no-project --python .release-tools python tools/expose_locked_commands.py .release-tools
- name: Check repository formatting
- name: 🧹 Check repository formatting
run: tools/cooled_prek.sh run --all-files
shell:
name: 🧹 Check inline shell
runs-on: ubuntu-26.04
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: πŸ“₯ Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 1
persist-credentials: false
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
- name: πŸ’Ύ Restore prek cache
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/prek
key: prek-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.pre-commit-config.yaml') }}
- uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
- name: 🐍 Install uv and Python
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
with:
version: latest-known
python-version: "3.15"
enable-cache: true
cache-suffix: ${{ github.job }}
cache-dependency-glob: pyproject.toml
- name: Install release tools
- name: πŸ“¦ Install release tools
env:
EXCLUDE_NEWER: 7 days
run: |
tools/install_live_tools.sh .release-tools 'prek>=0.2' 'yq>=4.4.5'
uv run --no-project --python .release-tools python tools/expose_locked_commands.py .release-tools
- name: Check inline shell
- name: 🧹 Check inline shell
run: |
set -euo pipefail
script_dir=./inline-shell-check
Expand All @@ -81,49 +86,60 @@ jobs:
index=$((index + 1))
done <"$RUNNER_TEMP/run-blocks"
done
scripts=("$script_dir"/*.sh)
echo "Checking ${#scripts[@]} run blocks from the workflows and Actions with shellcheck and shfmt"
tools/cooled_prek.sh run shellcheck --files "$script_dir"/*.sh
tools/cooled_prek.sh run shfmt --files "$script_dir"/*.sh
test:
name: πŸ§ͺ Test actions
runs-on: ubuntu-26.04
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: πŸ“₯ Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 1
persist-credentials: false
- uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
- name: 🐍 Install uv and Python
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
with:
version: latest-known
python-version: "3.15"
enable-cache: true
cache-suffix: ${{ github.job }}
cache-dependency-glob: pyproject.toml
- name: Run Action tests
- name: πŸ§ͺ Run Action tests
run: uvx --with tox-uv tox run -e test
type:
name: πŸ”Ž Type check
runs-on: ubuntu-26.04
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: πŸ“₯ Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
- name: 🐍 Install uv and Python
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
with:
version: latest-known
python-version: "3.15"
enable-cache: true
cache-suffix: ${{ github.job }}
cache-dependency-glob: pyproject.toml
- name: Check Python types
- name: πŸ”Ž Check Python types
run: uvx --with tox-uv tox run -e type
gate:
name: ${{ github.event_name == 'pull_request' && 'Required checks pass' || 'Required checks pass (non-PR)' }}
name: 🚦 Required checks pass
if: ${{ !cancelled() }}
needs: [check, shell, test, type]
runs-on: ubuntu-26.04
steps:
- env:
- name: 🚦 Require all needed jobs to pass
env:
NEEDS_JSON: ${{ toJSON(needs) }}
run: jq -e 'all(to_entries[]; .value.result == "success")' <<<"$NEEDS_JSON"
run: |
jq -r 'to_entries[] | "Job \(.key): \(.value.result)"' <<<"$NEEDS_JSON"
jq -e 'all(to_entries[]; .value.result == "success")' <<<"$NEEDS_JSON"
22 changes: 13 additions & 9 deletions .github/workflows/news.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,32 @@ permissions:
contents: read
jobs:
changelog:
name: πŸ“ News fragment
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: πŸ“₯ Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
- name: 🐍 Install uv and Python
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
with:
version: latest-known
python-version: "3.15"
enable-cache: true
cache-suffix: ${{ github.job }}
cache-dependency-glob: pyproject.toml
- name: Install release tools
- name: πŸ“¦ Install release tools
env:
EXCLUDE_NEWER: 7 days
# Temporary: release-creator 3.1.0 is younger than seven days. Delete after 2026-11-02.
EXCLUDE_NEWER_PACKAGE: release-creator=2026-10-25T21:03:31Z
# Temporary: release-creator 4.1.0 is younger than seven days. Delete after 2026-11-02.
EXCLUDE_NEWER_PACKAGE: release-creator=2026-10-26T18:24:46Z
run: |
tools/install_live_tools.sh "$RUNNER_TEMP/release-tools" 'release-creator>=2.0.0' 'towncrier>=26.9'
tools/install_live_tools.sh "$RUNNER_TEMP/release-tools" 'release-creator>=4.1' 'towncrier>=26.9'
uv run --no-project --python "$RUNNER_TEMP/release-tools" python tools/expose_locked_commands.py "$RUNNER_TEMP/release-tools"
- uses: $/validate-news
- name: πŸ” Validate news fragments
uses: $/validate-news
with:
# Temporary: release-creator 3.1.0 is younger than seven days. Delete after 2026-11-02.
exclude-newer-package: release-creator=2026-10-25T21:03:31Z
# Temporary: release-creator 4.1.0 is younger than seven days. Delete after 2026-11-02.
exclude-newer-package: release-creator=2026-10-26T18:24:46Z
5 changes: 3 additions & 2 deletions .github/workflows/prepare-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ on:
permissions: {}
jobs:
prepare:
name: 🏷️ Prepare Towncrier release
uses: $/.github/workflows/prepare-towncrier-release.yaml
permissions:
contents: read
pull-requests: read
with:
bump: ${{ inputs.bump }}
# Temporary: release-creator 3.1.0 is younger than seven days. Delete after 2026-11-02.
exclude-newer-package: release-creator=2026-10-25T21:03:31Z
# Temporary: release-creator 4.1.0 is younger than seven days. Delete after 2026-11-02.
exclude-newer-package: release-creator=2026-10-26T18:24:46Z
secrets:
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
Loading
Loading