Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b90153d
scripts/generate_locked_list.sh: support incremental generation.
casasnovas Apr 2, 2026
ff6b4fd
drivers: move into drivers/8.3/srpm.
casasnovas Mar 30, 2026
415bd7a
emulex-lpfc: update 8.3 branch.
casasnovas Mar 30, 2026
97256a4
drivers: import all normal driver sources.
casasnovas Mar 31, 2026
636d0ed
drivers: add alternate drivers.
casasnovas Mar 31, 2026
3dbe554
drivers: import all alt drivers sources.
casasnovas Apr 3, 2026
d505b18
update-drivers-list: add script to automatically generate the driver …
casasnovas Apr 20, 2026
65175cd
update-drivers-list: mark newer version between main and alt drivers.
casasnovas Apr 20, 2026
db3cf2b
update-drivers-list: include extra metadata about our drivers.
casasnovas Apr 20, 2026
be0ef76
.github: add workdlow to automatically track updates in drivers srpm …
casasnovas Apr 20, 2026
9b7652c
.github: automatically create and refresh source sub-modules.
casasnovas Apr 23, 2026
5d77b31
driver-disks: add as a sub-module.
casasnovas Apr 20, 2026
02c2aa1
update-drivers-list: automatically mark drivers for which a driver di…
casasnovas Apr 20, 2026
21554c0
update-drivers-list: add links to source and srpm.
casasnovas Apr 23, 2026
7e3f49a
update-drivers-list: add legend.
casasnovas Apr 23, 2026
a8fcce9
generate_locked_list: error out at unrecognized CLI option.
casasnovas Apr 24, 2026
745fde2
kernel-abis/xcpng-8.3-kabi_lockedlist: regenerate with all alt driver…
casasnovas Apr 24, 2026
20b33ba
drivers: mellanox-mlnxen-alt: update to latest.
casasnovas Apr 24, 2026
ff00d02
update-drivers-list: fix kernel_version to avoid errors on github run…
casasnovas Apr 24, 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
30 changes: 30 additions & 0 deletions .github/workflows/check-drivers-readme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Check drivers/README.md file

on:
pull_request:
paths:
- 'drivers/**'

jobs:
update-readme:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
persist-credentials: false

- name: Install rpm tools
run: sudo apt-get install -y rpm

- name: Generate drivers/README.md
run: ./scripts/update-drivers-list.sh

- name: Fail if README.md is not up to date
run: |
if ! git diff --exit-code drivers/README.md; then
echo "::error::drivers/README.md is out of date. Run drivers/update-drivers-list.sh and commit the result."
exit 1
fi
143 changes: 143 additions & 0 deletions .github/workflows/update-driver-submodules.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Update driver submodules

on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
update-submodules:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Update driver submodules to origin/8.3
id: update
run: |
updated=()
missing_sources=()
updated_sources=()

for submodule in drivers/8.3/srpm/*/; do
submodule="${submodule%/}"
src_submodule="${submodule/srpm/source}"

git -C "$submodule" fetch origin 8.3

local_sha=$(git -C "$submodule" rev-parse HEAD)
remote_sha=$(git -C "$submodule" rev-parse origin/8.3)

if [ "$local_sha" != "$remote_sha" ]; then
git -C "$submodule" checkout --detach origin/8.3
echo " $submodule: $local_sha -> $remote_sha"
updated+=("$submodule")
fi

if [ ! -d "$src_submodule" ]; then
# Missing sources, we need to add the sub-module as well as import its sources
{
# Add the source sub-module
git submodule add git@github.com/xcpng-rpms/$(basename "$submodule").git "drivers/8.3/source/$(basename "submodule")"

# Import the sources
cd "$submodule"
# git-import-srpm needs a source/8.3 branch to import the sources as base onto point
cur_rev=$(git rev-parse HEAD)
git checkout --orphan source/8.3
git rm -rf
git commit --allow-empty -m "Initial commit."
git push origin source/8.3
git checkout ${cur_rev}
# actually do the import now
branch=$(OOT_DRIVER_IMPORT=y ../../../../scripts/git-import-srpm HEAD | sed -n 's/.*Constructing \([^ ]\+\) from rev HEAD/\1/p')
cd -

# Push the source branch and update source sub-module
cd "$src_submodule"
git checkout $branch^0
git push origin $branch
missing_sources+=("$src_submodule")

cd -
}
else
# Sources are present, let's check if they are stale
{
# Import the sources from HEAD
cd "$submodule"
branch=$(OOT_DRIVER_IMPORT=y ../../../../scripts/git-import-srpm HEAD | sed -n 's/.*Constructing \([^ ]\+\) from rev HEAD/\1/p')
cd -

# Check if they match
cd "$src_submodule"
if [ "$(git rev-parse HEAD)" != "$(git rev-parse $branch)" ]; then
# Sources are stale, refresh them from the above import
git checkout $branch^0
updated_sources+=("$src_submodule")
fi
cd -
}
fi
done

if [ ${#updated[@]} -gt 0 -o ${#missing_sources[@]} -gt 0 -o ${#updated_sources[@]} -gt 0 ]; then
echo "updated=true" >> "$GITHUB_OUTPUT"
printf '%s\n' "${updated[@]}" > /tmp/updated-submodules.txt
printf '%s\n' "${missing_sources[@]}" > /tmp/missing_sources.txt
printf '%s\n' "${updated_sources[@]}" > /tmp/updated-sources.txt
else
echo "No submodules needed updating."
echo "updated=false" >> "$GITHUB_OUTPUT"
fi

- name: Regenerate drivers/README.md
if: steps.update.outputs.updated == 'true'
run: |
sudo apt-get install -y rpm
scripts/update-drivers-list.sh

- name: Commit and open PR
if: steps.update.outputs.updated == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
branch="auto/update-driver-submodules"

git config user.name "Vates Driver Importer"
git config user.email "gitimporter@vates.tech"

git checkout -b "$branch"
git add drivers/8.3
git commit -m "drivers: update submodules and corresponding sources to latest 8.3 branch"

# Force-push so a re-run on the same day updates the existing branch.
git push --force origin "$branch"

# Open a PR only if none is already open for this branch.
if ! gh pr list --head "$branch" --state open --json number --jq '.[0].number' | grep -q .; then
{
echo "Automated daily update of driver submodules to the latest \`8.3\` branch."
echo ""
echo "Updated submodules:"
sed 's/^/- /' /tmp/updated-submodules.txt
echo "Added source submodules:"
sed 's/^/- /' /tmp/missing-sources.txt
echo "Updated source submodules:"
sed 's/^/- /' /tmp/updated-sources.txt
} > /tmp/pr-body.txt

gh pr create \
--base main \
--head "$branch" \
--title "drivers: update submodules to latest 8.3 branch" \
--body-file /tmp/pr-body.txt
fi
Loading
Loading