Skip to content

Commit 6c7567b

Browse files
Merge pull request #59 from ktsu-dev/claude/audit-cross-platform-library-neaR5
Rewrite persistence to use Windows / macOS / Linux native keyrings
2 parents 8ac0348 + 9210d1e commit 6c7567b

18 files changed

Lines changed: 1348 additions & 396 deletions

.gitattributes

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@
1616
# in Unix via a file share from Windows, the scripts will work.
1717
*.sh text eol=lf
1818

19+
# .editorconfig declares end_of_line = crlf for the entire tree. Force CRLF in
20+
# the working copy so cross-platform CI (and Linux/macOS contributors) see the
21+
# files exactly as editorconfig demands -- otherwise the IDE0055 formatting
22+
# analyzer (treat-warnings-as-errors) fails the build on non-Windows runners.
23+
*.cs text eol=crlf
24+
*.csproj text eol=crlf
25+
*.props text eol=crlf
26+
*.targets text eol=crlf
27+
*.editorconfig text eol=crlf
28+
1929
###############################
2030
# Git Large File System (LFS) #
2131
###############################
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Cross-platform verification
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
paths-ignore:
7+
- "**.md"
8+
- ".github/ISSUE_TEMPLATE/**"
9+
- ".github/pull_request_template.md"
10+
pull_request:
11+
paths-ignore:
12+
- "**.md"
13+
- ".github/ISSUE_TEMPLATE/**"
14+
- ".github/pull_request_template.md"
15+
workflow_dispatch:
16+
17+
concurrency:
18+
group: cross-platform-${{ github.ref }}
19+
cancel-in-progress: true
20+
21+
permissions:
22+
contents: read
23+
24+
jobs:
25+
verify:
26+
name: Build & Test (${{ matrix.os }})
27+
runs-on: ${{ matrix.os }}
28+
timeout-minutes: 15
29+
strategy:
30+
fail-fast: false
31+
matrix:
32+
os: [ubuntu-latest, windows-latest, macos-latest]
33+
34+
steps:
35+
- name: Checkout repository
36+
uses: actions/checkout@v4
37+
38+
- name: Setup .NET SDK 10.0
39+
uses: actions/setup-dotnet@v4
40+
with:
41+
dotnet-version: 10.0.x
42+
43+
- name: Install libsecret (Linux)
44+
if: runner.os == 'Linux'
45+
run: |
46+
sudo apt-get update
47+
sudo apt-get install -y libsecret-1-0
48+
49+
- name: Restore
50+
run: dotnet restore CredentialCache.sln
51+
52+
- name: Build
53+
run: dotnet build CredentialCache.sln --configuration Release --no-restore
54+
55+
- name: Test
56+
run: dotnet test --project CredentialCache.Test/CredentialCache.Test.csproj --configuration Release --no-build

CredentialCache.Test/CredentialCache.Test.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
<Project>
1+
<Project>
22
<Sdk Name="MSTest.Sdk" />
33
<Sdk Name="ktsu.Sdk" />
44

55
<PropertyGroup>
66
<IsTestProject>true</IsTestProject>
77
<TargetFramework>net10.0</TargetFramework>
88
<TargetFrameworks></TargetFrameworks>
9+
<!-- Avoid pulling Microsoft.NETCore.App.Host.{distro-specific}-RID packages
10+
that some SDK builds resolve based on the host distro. Tests run via
11+
`dotnet test` / `dotnet exec` and don't need an apphost executable. -->
12+
<UseAppHost>false</UseAppHost>
913
</PropertyGroup>
1014

1115
<ItemGroup>

0 commit comments

Comments
 (0)