Browse Source

chore: update the pinned actions with Dependabot and list AlphaFS 2.2.1

- .github/dependabot.yml: weekly updates for the github-actions ecosystem
  only, grouped into one pull request with the commit prefix "ci". The CI
  workflow pins each action by commit SHA with a version comment, which
  Dependabot updates together.
- NTFSSecurity/packages.config listed AlphaFS 2.2.6, but every HintPath and
  the other packages.config files use 2.2.1, the version that ships.
- Tests/Repository.Tests.ps1 (new, 8 tests, no build needed) checks both;
  before the change, 5 of them failed.

No CHANGELOG entry: build and CI metadata only (Decision 7).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: AI Assistant <ai@example.com>
pull/99/head
Raimund Andree 1 week ago
parent
commit
31d9f0db03
  1. 15
      .github/dependabot.yml
  2. 2
      NTFSSecurity/packages.config
  3. 64
      Tests/Repository.Tests.ps1

15
.github/dependabot.yml

@ -0,0 +1,15 @@
# Keeps the actions of .github/workflows/ci.yml up to date. The workflow pins
# each action by commit SHA with the version in a comment; Dependabot updates
# both and opens one pull request a week for all actions.
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
commit-message:
prefix: ci
groups:
github-actions:
patterns:
- "*"

2
NTFSSecurity/packages.config

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AlphaFS" version="2.2.6" targetFramework="net452" />
<package id="AlphaFS" version="2.2.1" targetFramework="net452" />
<package id="System.Management.Automation.dll" version="10.0.10586.0" targetFramework="net452" />
</packages>

64
Tests/Repository.Tests.ps1

@ -0,0 +1,64 @@
<#
Tests repository files that the build and GitHub use, without a build: every packages.config lists the AlphaFS
version that the projects reference and ship, and Dependabot keeps the actions of the CI workflow up to date.
#>
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
'PSUseDeclaredVarsMoreThanAssignments', '', Justification = 'Pester shares variables between blocks.'
)]
param ()
BeforeDiscovery {
$repositoryPath = Join-Path -Path $PSScriptRoot -ChildPath '..'
$packageConfigs = foreach ($project in Get-ChildItem -Path $repositoryPath -Filter '*.csproj' -Recurse -Depth 1) {
$configPath = Join-Path -Path $project.DirectoryName -ChildPath 'packages.config'
if ((Test-Path -LiteralPath $configPath) -and (Select-String -LiteralPath $configPath -Pattern 'id="AlphaFS"' -Quiet)) {
@{ Project = $project.Directory.Name; Path = $configPath }
}
}
}
Describe 'NuGet packages of the projects' {
BeforeAll {
$repositoryPath = Join-Path -Path $PSScriptRoot -ChildPath '..'
$projects = Get-ChildItem -Path $repositoryPath -Filter '*.csproj' -Recurse -Depth 1
$hintPathVersions = @($projects | Select-String -Pattern 'packages\\AlphaFS\.(\d+\.\d+\.\d+)\\' |
ForEach-Object -Process { $_.Matches[0].Groups[1].Value } | Sort-Object -Unique)
}
It 'Should reference one AlphaFS version in the HintPaths of all projects' {
$hintPathVersions | Should -HaveCount 1
}
It 'Should list the AlphaFS version of the HintPaths in <Project>\packages.config' -ForEach $packageConfigs {
$package = ([xml] (Get-Content -LiteralPath $Path -Raw)).packages.package |
Where-Object -Property id -EQ -Value 'AlphaFS'
$package.version | Should -BeExactly $hintPathVersions[0]
}
}
Describe 'Dependabot configuration' {
BeforeAll {
$configPath = Join-Path -Path $PSScriptRoot -ChildPath '..\.github\dependabot.yml'
$lines = if (Test-Path -LiteralPath $configPath) { Get-Content -LiteralPath $configPath } else { @() }
$ecosystems = @($lines | Select-String -Pattern '^\s*-\s*package-ecosystem:\s*"?([\w-]+)"?\s*$' |
ForEach-Object -Process { $_.Matches[0].Groups[1].Value })
}
It 'Should exist in the .github folder' {
$configPath | Should -Exist
}
It 'Should update only the actions of the CI workflow' {
$ecosystems | Should -BeExactly @('github-actions')
}
It 'Should check for updates every week' {
$lines -match '^\s+interval:\s*"?weekly"?\s*$' | Should -HaveCount 1
}
It 'Should group all updates into one pull request' {
$lines -match '^\s+groups:\s*$' | Should -HaveCount 1
$lines -match '^\s+-\s*"\*"\s*$' | Should -HaveCount 1
}
}
Loading…
Cancel
Save