Check for updates to the Windows Driver Kit #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (c) eBPF for Windows contributors | |
# SPDX-License-Identifier: MIT | |
# This workflow checks for Windows Driver Kit updates and files issues when updates are needed. | |
name: Check for updates to the Windows Driver Kit | |
on: | |
# Run script every Sunday at midnight | |
schedule: | |
- cron: '0 0 * * 0' | |
# Allow manual triggering of the script | |
workflow_dispatch: | |
jobs: | |
check: | |
runs-on: Windows-latest | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- name: Check for updates to the Windows Driver Kit | |
id: check_wdk | |
run: | | |
# Get the latest version of the Windows Driver Kit | |
$packageVersion = .\scripts\Get-LatestNugetPackageVersion.ps1 -PackageName "Microsoft.Windows.WDK.x64" | |
"wdk_version=$packageVersion" >> $env:GITHUB_OUTPUT | |
- name: Check the version of the WDK in the repo | |
id: check_repo_wdk | |
run: | | |
$wdkVersion = (Get-Content -Path .\wdk.props | Select-String -Pattern "<WDKVersion>" | ForEach-Object { $_ -replace "<WDKVersion>", "" -replace "</WDKVersion>", "" }).trim() | |
"wdk_version=$wdkVersion" >> $env:GITHUB_OUTPUT | |
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea | |
if: steps.check_wdk.outputs.wdk_version != steps.check_repo_wdk.outputs.wdk_version | |
env: | |
TITLE: 'Update the Windows Driver Kit' | |
BODY: | | |
The Windows Driver Kit version in the repository does not match the latest version available on NuGet. Please update the WDK version in the repository to match the latest version available on NuGet. | |
The latest version is ${{steps.check_wdk.outputs.wdk_version}} and the version in the repository is ${{steps.check_repo_wdk.outputs.wdk_version}}. | |
To update the WDK run the following command: | |
```powershell | |
.\scripts\Update-WdkVersion.ps1 | |
``` | |
LABELS: bug,ci/cd | |
with: | |
script: | | |
const owner = process.env.GITHUB_REPOSITORY.split('/')[0] | |
const repo = process.env.GITHUB_REPOSITORY.split('/')[1] | |
const body = process.env.BODY; | |
const title = process.env.TITLE; | |
const labels = process.env.LABELS; | |
const label_array = labels ? labels.split(',') : []; | |
console.log(label_array); | |
// Get all issues that have these labels. | |
const opts = github.rest.issues.listForRepo.endpoint.merge({ | |
...context.issue, | |
state: 'open', | |
labels: label_array, | |
}); | |
const issues = await github.paginate(opts); | |
// Look for an existing issue with the same title. | |
for (const issue of issues) { | |
if (issue.title === title) { | |
console.log(`Updating issue ${title}`); | |
await github.rest.issues.createComment({ | |
issue_number: issue.number, | |
owner, | |
repo, | |
body, | |
}); | |
return; | |
} | |
} | |
// Existing issue not found, create a new one. | |
console.log(`Creating issue ${title}`); | |
await github.rest.issues.create({ | |
owner: owner, | |
repo: repo, | |
title: title, | |
body: body, | |
labels: label_array, | |
}); |