-
Notifications
You must be signed in to change notification settings - Fork 241
83 lines (76 loc) · 3.24 KB
/
check_wdk.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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,
});