Skip to content

Commit 639eff3

Browse files
Merge pull request #74 from woutervanranst/feat/arius5
feat: Arius 5 rewrite
2 parents 5e085ff + adead35 commit 639eff3

File tree

308 files changed

+13492
-15860
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

308 files changed

+13492
-15860
lines changed

.github/dependabot.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,15 @@ updates:
55
schedule:
66
interval: "weekly"
77
open-pull-requests-limit: 10
8-
target-branch: "feat/arius5"
98
commit-message:
109
prefix: "chore"
1110
include: "scope"
1211

1312
- package-ecosystem: "docker"
14-
directory: "/src"
13+
directory: "/src" # change if your Dockerfile(s) live elsewhere
1514
schedule:
1615
interval: "weekly"
1716
open-pull-requests-limit: 10
18-
target-branch: "feat/arius5"
1917
commit-message:
2018
prefix: "chore"
2119
include: "scope"
@@ -25,7 +23,6 @@ updates:
2523
schedule:
2624
interval: "weekly"
2725
open-pull-requests-limit: 10
28-
target-branch: "feat/arius5"
2926
commit-message:
3027
prefix: "chore"
3128
include: "scope"

.github/workflows/ci.yml

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- '.github/workflows/ci.yml'
9+
- 'src/**'
10+
pull_request:
11+
paths:
12+
- '.github/workflows/ci.yml'
13+
- 'src/**'
14+
workflow_dispatch:
15+
16+
permissions:
17+
contents: write
18+
actions: read
19+
checks: write
20+
21+
jobs:
22+
arius_cli_test:
23+
name: "🧪 CLI & Core Tests on ${{ matrix.os }}"
24+
runs-on: ${{ matrix.os }}
25+
strategy:
26+
matrix:
27+
os: [ubuntu-latest, windows-latest]
28+
defaults:
29+
run:
30+
working-directory: src
31+
steps:
32+
- name: "📥 Checkout repository"
33+
uses: actions/checkout@v4
34+
35+
- name: "🧰 Setup .NET"
36+
uses: actions/setup-dotnet@v4
37+
with:
38+
dotnet-version: 9.x
39+
40+
- name: "🏗️ Build Arius.Cli"
41+
run: dotnet build Arius.Cli/Arius.Cli.csproj --configuration Release
42+
43+
- name: "🧪 Run Arius.Cli & Core Tests"
44+
env:
45+
RepositoryOptions__AccountKey: ${{ secrets.REPOSITORY_OPTIONS_ACCOUNT_KEY }}
46+
RepositoryOptions__Passphrase: ${{ secrets.REPOSITORY_OPTIONS_PASSPHRASE }}
47+
ARIUS_ACCOUNT_NAME: ariusci
48+
ARIUS_ACCOUNT_KEY: ${{ secrets.ARIUS_ACCOUNT_KEY }}
49+
run: |
50+
dotnet test Arius.Cli.Tests/Arius.Cli.Tests.csproj --configuration Release --logger "trx;LogFileName=cli-test-results.trx" --collect:"XPlat Code Coverage"
51+
dotnet test Arius.Core.Tests/Arius.Core.Tests.csproj --configuration Release --filter "FullyQualifiedName!=Arius.Core.Tests.Features.Commands.Archive.ArchiveCommandHandlerTests.RunArchiveCommandTEMP&FullyQualifiedName!=Arius.Core.Tests.Features.Commands.Restore.RestoreCommandHandlerTests.Restore_OnePointerFile_CreateOrOverwritePointerFileOnDiskTEMP" --logger "trx;LogFileName=core-test-results.trx" --collect:"XPlat Code Coverage"
52+
53+
- name: "📄 Publish Test Report"
54+
if: always()
55+
uses: dorny/test-reporter@v2
56+
with:
57+
name: Arius.Cli & Core Test Report
58+
path: '**/*.trx'
59+
reporter: dotnet-trx
60+
61+
- name: "📊 Upload Coverage to Codecov"
62+
if: always()
63+
uses: codecov/codecov-action@v4
64+
with:
65+
token: ${{ secrets.CODECOV_TOKEN }}
66+
fail_ci_if_error: true
67+
68+
arius_cli_build:
69+
name: "🚀 CLI Build & Release"
70+
runs-on: ubuntu-latest
71+
needs: arius_cli_test
72+
defaults:
73+
run:
74+
working-directory: src
75+
steps:
76+
- name: "📥 Checkout repository"
77+
uses: actions/checkout@v4
78+
79+
- name: "🧰 Setup .NET"
80+
uses: actions/setup-dotnet@v4
81+
with:
82+
dotnet-version: 9.x
83+
84+
- name: "🧮 Determine version"
85+
id: get_version
86+
run: |
87+
BASE_VERSION=$(grep -Po '(?<=<Version>)[^<]+' Arius.Cli/Arius.Cli.csproj | head -n 1)
88+
BASE_VERSION=${BASE_VERSION/\$\(GITHUB_RUN_NUMBER\)/$GITHUB_RUN_NUMBER}
89+
if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then
90+
echo "VERSION=${BASE_VERSION}" >> $GITHUB_ENV
91+
echo "IS_PRERELEASE=false" >> $GITHUB_ENV
92+
else
93+
echo "VERSION=${BASE_VERSION}-prerelease" >> $GITHUB_ENV
94+
echo "IS_PRERELEASE=true" >> $GITHUB_ENV
95+
fi
96+
97+
- name: "📦 Publish CLI"
98+
run: dotnet publish Arius.Cli/Arius.Cli.csproj --configuration Release --output publish
99+
100+
- name: "🗜️ Package artifact"
101+
run: tar czf arius-cli-${VERSION}.tar.gz -C publish .
102+
103+
- name: "⬆️ Upload artifact"
104+
uses: actions/upload-artifact@v4
105+
with:
106+
name: arius-cli-${{ env.VERSION }}
107+
path: arius-cli-${{ env.VERSION }}.tar.gz
108+
109+
- name: "🔑 Login to Docker Hub"
110+
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
111+
112+
- name: "🐳 Build and Push Docker Image"
113+
run: |
114+
IMAGE_NAME="${{ secrets.DOCKERHUB_USERNAME }}/arius5:${VERSION}"
115+
LATEST_NAME="${{ secrets.DOCKERHUB_USERNAME }}/arius5:latest"
116+
docker build -t $IMAGE_NAME -t $LATEST_NAME -f Arius.Cli/Dockerfile .
117+
docker push $IMAGE_NAME
118+
docker push $LATEST_NAME
119+
120+
- name: "📝 Build Changelog"
121+
id: build_changelog
122+
uses: mikepenz/release-changelog-builder-action@v5
123+
with:
124+
commitMode: true
125+
env:
126+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
127+
128+
- name: "🏷️ Create GitHub Release"
129+
uses: softprops/action-gh-release@v1
130+
with:
131+
tag_name: v${{ env.VERSION }}
132+
name: v${{ env.VERSION }}
133+
prerelease: ${{ env.IS_PRERELEASE == 'true' }}
134+
files: arius-cli-${{ env.VERSION }}.tar.gz
135+
body: ${{ steps.build_changelog.outputs.changelog }}
136+
env:
137+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138+
139+
arius_explorer_test:
140+
name: "🧪 Explorer Tests (Windows)"
141+
runs-on: windows-latest
142+
defaults:
143+
run:
144+
working-directory: src
145+
steps:
146+
- name: "📥 Checkout repository"
147+
uses: actions/checkout@v4
148+
149+
- name: "🧰 Setup .NET"
150+
uses: actions/setup-dotnet@v4
151+
with:
152+
dotnet-version: 9.x
153+
154+
- name: "🧪 Run Arius.Explorer & Core Tests"
155+
env:
156+
RepositoryOptions__AccountKey: ${{ secrets.REPOSITORY_OPTIONS_ACCOUNT_KEY }}
157+
RepositoryOptions__Passphrase: ${{ secrets.REPOSITORY_OPTIONS_PASSPHRASE }}
158+
ARIUS_ACCOUNT_NAME: ariusci
159+
ARIUS_ACCOUNT_KEY: ${{ secrets.ARIUS_ACCOUNT_KEY }}
160+
run: |
161+
dotnet test Arius.Explorer.Tests/Arius.Explorer.Tests.csproj --configuration Release --logger "trx;LogFileName=explorer-test-results.trx" --collect:"XPlat Code Coverage"
162+
dotnet test Arius.Core.Tests/Arius.Core.Tests.csproj --configuration Release --filter "FullyQualifiedName!=Arius.Core.Tests.Features.Commands.Archive.ArchiveCommandHandlerTests.RunArchiveCommandTEMP&FullyQualifiedName!=Arius.Core.Tests.Features.Commands.Restore.RestoreCommandHandlerTests.Restore_OnePointerFile_CreateOrOverwritePointerFileOnDiskTEMP" --logger "trx;LogFileName=core-test-results.trx" --collect:"XPlat Code Coverage"
163+
164+
- name: "📄 Publish Test Report"
165+
if: always()
166+
uses: dorny/test-reporter@v2
167+
with:
168+
name: Arius.Explorer Test Report
169+
path: '**/*.trx'
170+
reporter: dotnet-trx
171+
172+
- name: "📊 Upload Coverage to Codecov"
173+
if: always()
174+
uses: codecov/codecov-action@v4
175+
with:
176+
token: ${{ secrets.CODECOV_TOKEN }}
177+
fail_ci_if_error: true
178+
179+
arius_explorer_build:
180+
name: "🏗️ Explorer Build (stub)"
181+
runs-on: windows-latest
182+
needs: arius_explorer_test
183+
steps:
184+
- name: "⏭️ Placeholder"
185+
run: echo "Arius.Explorer build pipeline to be implemented."

.github/workflows/codeql-analysis.yml

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@ name: CodeQL Analysis
22

33
on:
44
push:
5+
branches:
6+
- '**'
57
paths:
6-
- 'src/Arius.Core/**'
7-
- 'src/Arius.Cli/**'
8-
- 'src/Arius.UI/**'
8+
- 'src/**'
9+
- '.github/workflows/codeql-analysis.yml'
10+
pull_request:
11+
branches:
12+
- '**'
13+
paths:
14+
- 'src/**'
915
- '.github/workflows/codeql-analysis.yml'
1016

1117
jobs:
@@ -18,34 +24,27 @@ jobs:
1824
contents: read
1925
security-events: write
2026
defaults:
21-
run:
22-
working-directory: ./src
23-
27+
run:
28+
working-directory: ./src
2429
strategy:
2530
fail-fast: false
2631
matrix:
27-
language: [ 'csharp' ]
28-
32+
language: ['csharp']
2933
steps:
3034
- name: Checkout repository
3135
uses: actions/checkout@v4
3236
with:
33-
submodules: true # Check out WouterVanRanst.Utils
34-
35-
- name: Setup .NET Core
37+
submodules: true
38+
- name: Setup .NET
3639
uses: actions/setup-dotnet@v4
3740
with:
38-
dotnet-version: 8.x
39-
41+
dotnet-version: 9.x
4042
- name: Initialize CodeQL
41-
uses: github/codeql-action/init@v2
43+
uses: github/codeql-action/init@v3
4244
with:
4345
languages: ${{ matrix.language }}
44-
queries: security-and-quality # https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#using-queries-in-ql-packs
45-
46+
queries: security-and-quality
4647
- name: Build
47-
run: |
48-
dotnet build
49-
48+
run: dotnet build Arius.sln --configuration Release
5049
- name: Perform CodeQL Analysis
51-
uses: github/codeql-action/analyze@v2
50+
uses: github/codeql-action/analyze@v3

.github/workflows/core-test.yml

Lines changed: 0 additions & 65 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,4 @@ jobs:
168168
submodules: true # Check out WouterVanRanst.Utils
169169

170170
- name: Create GitHub Release
171-
uses: softprops/action-gh-release@v1 # see https://github.com/softprops/action-gh-release for options
171+
uses: softprops/action-gh-release@v1 # see https://github.com/softprops/action-gh-release for options

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,4 +396,8 @@ FodyWeavers.xsd
396396

397397
# JetBrains Rider
398398
*.sln.iml
399+
399400
src/_workspaces.db
401+
402+
**/.serena
403+
**/.claude

.gitmodules

Whitespace-only changes.

LINQPad/ChunkSizes.linq

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)