Files
dokku/.github/workflows/dependency-updates.yml
dependabot[bot] 381e8fb8c1 chore(deps): bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 13:52:33 +00:00

111 lines
3.8 KiB
YAML

---
name: 'dependency-updates'
# yamllint disable-line rule:truthy
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
prepare:
name: prepare
runs-on: ubuntu-24.04
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- name: Clone
uses: actions/checkout@v7
- name: Build dependency matrix
id: matrix
run: |
matrix=$(jq -c '
[
(.dependencies[] | {section: "dependencies", name, version, url: .urls.amd64}),
(.predependencies[] | {section: "predependencies", name, version, url: .urls.amd64}),
(.recommendations[] | {section: "recommendations", name, version, url: .urls.amd64})
]
| map(. + {repo: (.url | capture("https://github.com/(?<r>[^/]+/[^/]+)/releases").r)})
| map(del(.url))
| {include: .}
' contrib/dependencies.json)
echo "matrix=${matrix}" >> "$GITHUB_OUTPUT"
update:
name: 'update / ${{ matrix.name }}'
runs-on: ubuntu-24.04
needs: prepare
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.prepare.outputs.matrix) }}
concurrency:
group: dependency-updates-${{ matrix.name }}
cancel-in-progress: false
steps:
- name: Clone
uses: actions/checkout@v7
- name: Resolve latest release
id: latest
env:
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
REPO: ${{ matrix.repo }}
CURRENT: ${{ matrix.version }}
run: |
tag=$(gh release view --repo "$REPO" --json tagName -q .tagName)
latest="${tag#v}"
echo "latest=${latest}" >> "$GITHUB_OUTPUT"
if dpkg --compare-versions "$latest" gt "$CURRENT"; then
echo "outdated=true" >> "$GITHUB_OUTPUT"
else
echo "outdated=false" >> "$GITHUB_OUTPUT"
fi
- name: Bump dependency entry
if: steps.latest.outputs.outdated == 'true'
env:
SECTION: ${{ matrix.section }}
NAME: ${{ matrix.name }}
OLD: ${{ matrix.version }}
NEW: ${{ steps.latest.outputs.latest }}
run: |
tmp=$(mktemp)
jq --arg section "$SECTION" \
--arg name "$NAME" \
--arg old "$OLD" \
--arg new "$NEW" '
($old) as $oldv |
($new) as $newv |
(.[$section]) |= map(
if .name == $name then
.version = $newv
| .urls.amd64 |= (gsub("v" + $oldv; "v" + $newv) | gsub($oldv; $newv))
| .urls.arm64 |= (gsub("v" + $oldv; "v" + $newv) | gsub($oldv; $newv))
else . end
)
' contrib/dependencies.json > "$tmp"
mv "$tmp" contrib/dependencies.json
- name: Open pull request
if: steps.latest.outputs.outdated == 'true'
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
branch: chore/bump-${{ matrix.name }}-${{ steps.latest.outputs.latest }}
base: ${{ github.ref_name }}
delete-branch: true
committer: 'Dokku Bot <no-reply@dokku.com>'
author: 'Dokku Bot <no-reply@dokku.com>'
commit-message: 'chore: bump ${{ matrix.name }} to ${{ steps.latest.outputs.latest }}'
title: 'chore: bump ${{ matrix.name }} to ${{ steps.latest.outputs.latest }}'
body: |
Bumps `${{ matrix.name }}` from `${{ matrix.version }}` to `${{ steps.latest.outputs.latest }}`.
Release notes: https://github.com/${{ matrix.repo }}/releases/tag/v${{ steps.latest.outputs.latest }}
labels: 'type: dependencies'