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:
Fabian Mastenbroek 2020-11-12 17:26:52 +01:00
parent 1dc101c237
commit ed0d145cdc
No known key found for this signature in database
GPG key ID: 405FC6F81F0A7B85
2 changed files with 61 additions and 0 deletions

51
.github/workflows/watch.yml vendored Normal file
View 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
View 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