Add workflow for weekly update checks
This change adds a workflow that will check weekly whether a new release is available for the current actively maintained Linux stable branches.
This commit is contained in:
parent
1dc101c237
commit
ed0d145cdc
2 changed files with 61 additions and 0 deletions
51
.github/workflows/watch.yml
vendored
Normal file
51
.github/workflows/watch.yml
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
name: Kernel Watch
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 14 * * 1' # Every week
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Check for new Release
|
||||
runs-on: [ubuntu-latest]
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ['v5.9.x']
|
||||
steps:
|
||||
- name: Checkout Sources
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ matrix.branch }}
|
||||
- uses: tibdex/github-app-token@v1
|
||||
id: generate-token
|
||||
with:
|
||||
app_id: ${{ secrets.APP_ID }}
|
||||
private_key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
- name: Setup System Dependencies
|
||||
run: sudo apt install jq curl
|
||||
- name: Check for Release
|
||||
id: check
|
||||
run: |
|
||||
NEW=$(scripts/check.sh ${{ matrix.branch }})
|
||||
if [[ -z $NEW ]]; then
|
||||
echo "No new release found"
|
||||
exit 0
|
||||
fi
|
||||
echo "Found new Linux kernel version $NEW"
|
||||
STAGING=$(git ls-remote --heads origin "staging/v$NEW*")
|
||||
if [[ $STAGING ]]; then
|
||||
echo "Existing staging update found"
|
||||
exit 0
|
||||
fi
|
||||
echo "No staging update found: triggering update"
|
||||
echo "::set-output name=version::$NEW"
|
||||
- name: Trigger Update
|
||||
if: ${{ steps.check.outputs.version }}
|
||||
uses: benc-uk/workflow-dispatch@v1
|
||||
with:
|
||||
workflow: Kernel Update
|
||||
token: ${{ steps.generate-token.outputs.token }} # Custom token needed to recursively trigger workflows
|
||||
inputs: '{ "tag": "cod/mainline/v${{ steps.check.outputs.version }}" }'
|
||||
ref: ${{ matrix.branch }}
|
||||
|
10
scripts/check.sh
Executable file
10
scripts/check.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#1/bin/bash
|
||||
# Script to check for new kernel release
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
MAJOR=$(echo $1 | sed -e "s/^v//" -e "s/\.[^.]*$//")
|
||||
CURRENT=$(scripts/version.sh -L)
|
||||
NEW=$(curl -s https://www.kernel.org/releases.json | jq -r ".releases[]|select(.version | startswith(\"$MAJOR\")) | .version")
|
||||
|
||||
[[ "$CURRENT" = "$NEW" ]] || echo $NEW
|
Loading…
Reference in a new issue