diff --git a/.github/workflows/ci-audit.yml b/.github/workflows/ci-audit.yml
index a4f6e74..dcec2d2 100644
--- a/.github/workflows/ci-audit.yml
+++ b/.github/workflows/ci-audit.yml
@@ -11,6 +11,9 @@ env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_GENERATE_ASPNET_CERTIFICATE: false
ContinuousIntegrationBuild: true
+ CiRunNumber: ${{ github.run_number }}
+ CiRunMainSuffix: ci${{ github.run_number }}
+ CiRunPullSuffix: pull-${{ github.event.number }}-ci${{ github.run_number }}
jobs:
audit:
strategy:
@@ -21,6 +24,9 @@ jobs:
include:
- os: ubuntu-latest
test-filter: --filter TestCategory!=DriverDependent
+ - os: windows-latest
+ configuration: release
+ collect-packages: true
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
@@ -37,8 +43,20 @@ jobs:
- name: Build
run: dotnet build --no-restore --configuration ${{ matrix.configuration }}
+ - name: Test
+ run: dotnet test --no-build --configuration ${{ matrix.configuration }} ${{ matrix.test-filter }}
+
- name: Pack
+ id: pack
+ if: matrix.collect-packages
+ env:
+ CiBuildVersionSuffix: ${{ github.ref_name == 'main' && env.CiRunMainSuffix || env.CiRunPullSuffix }}
run: dotnet pack --no-build --configuration ${{ matrix.configuration }}
- - name: Test
- run: dotnet test --no-build --configuration ${{ matrix.configuration }} ${{ matrix.test-filter }}
\ No newline at end of file
+ - name: Collect packages
+ uses: actions/upload-artifact@v4
+ if: matrix.collect-packages && steps.pack.outcome == 'success' && always()
+ with:
+ name: Packages
+ if-no-files-found: error
+ path: artifacts/package/${{matrix.configuration}}/**
\ No newline at end of file
diff --git a/Aeon.sln b/Aeon.sln
index 0135b79..2ae4aac 100644
--- a/Aeon.sln
+++ b/Aeon.sln
@@ -20,11 +20,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aeon.Foraging", "src\Aeon.F
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aeon.Environment", "src\Aeon.Environment\Aeon.Environment.csproj", "{49FC1C61-791E-41CF-BB7C-C2AC26AFAFE3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aeon.Video", "src\Aeon.Video\Aeon.Video.csproj", "{1D11793E-85E9-473C-8EF6-F4BD4B249E30}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aeon.Video", "src\Aeon.Video\Aeon.Video.csproj", "{1D11793E-85E9-473C-8EF6-F4BD4B249E30}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aeon.Vision", "src\Aeon.Vision\Aeon.Vision.csproj", "{709D0302-5A4F-4F76-8596-41B74DF3B3E9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aeon.Vision", "src\Aeon.Vision\Aeon.Vision.csproj", "{709D0302-5A4F-4F76-8596-41B74DF3B3E9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aeon.Vision.Sleap", "src\Aeon.Vision.Sleap\Aeon.Vision.Sleap.csproj", "{0D9D431D-EA23-4610-B262-313A48BFE34B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aeon.Vision.Sleap", "src\Aeon.Vision.Sleap\Aeon.Vision.Sleap.csproj", "{0D9D431D-EA23-4610-B262-313A48BFE34B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{EE2D6E09-6996-49EC-9A7F-4569854BC613}"
+ ProjectSection(SolutionItems) = preProject
+ build\Version.props = build\Version.props
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -52,10 +57,6 @@ Global
{49FC1C61-791E-41CF-BB7C-C2AC26AFAFE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49FC1C61-791E-41CF-BB7C-C2AC26AFAFE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49FC1C61-791E-41CF-BB7C-C2AC26AFAFE3}.Release|Any CPU.Build.0 = Release|Any CPU
- {0D9D431D-EA23-4610-B262-313A48BFE34B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0D9D431D-EA23-4610-B262-313A48BFE34B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0D9D431D-EA23-4610-B262-313A48BFE34B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0D9D431D-EA23-4610-B262-313A48BFE34B}.Release|Any CPU.Build.0 = Release|Any CPU
{1D11793E-85E9-473C-8EF6-F4BD4B249E30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D11793E-85E9-473C-8EF6-F4BD4B249E30}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D11793E-85E9-473C-8EF6-F4BD4B249E30}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -64,6 +65,10 @@ Global
{709D0302-5A4F-4F76-8596-41B74DF3B3E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{709D0302-5A4F-4F76-8596-41B74DF3B3E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{709D0302-5A4F-4F76-8596-41B74DF3B3E9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0D9D431D-EA23-4610-B262-313A48BFE34B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0D9D431D-EA23-4610-B262-313A48BFE34B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0D9D431D-EA23-4610-B262-313A48BFE34B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0D9D431D-EA23-4610-B262-313A48BFE34B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Directory.Build.props b/Directory.Build.props
index 41ae192..47d2ff0 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -12,10 +12,11 @@
true
git
0.7.0
-
9.0
strict
+
+
diff --git a/build/Version.props b/build/Version.props
new file mode 100644
index 0000000..d7d1fa2
--- /dev/null
+++ b/build/Version.props
@@ -0,0 +1,20 @@
+
+
+
+ 0
+
+ dev$(DevVersion)
+ <_FileVersionRevision>$([MSBuild]::Add(60000, $(DevVersion)))
+
+
+
+ $(CiBuildVersionSuffix)
+ <_FileVersionRevision>0
+ <_FileVersionRevision Condition="'$(CiBuildVersionSuffix)' != '' and '$(CiRunNumber)' != ''">$(CiRunNumber)
+
+
+
+
+ $(WarningsAsErrors);CS7035
+
+
\ No newline at end of file
diff --git a/src/Aeon.Database/Aeon.Database.csproj b/src/Aeon.Database/Aeon.Database.csproj
index c3bcf5b..0adadd5 100644
--- a/src/Aeon.Database/Aeon.Database.csproj
+++ b/src/Aeon.Database/Aeon.Database.csproj
@@ -5,7 +5,6 @@
Provides querying and schema functionality for Project Aeon databases.
Bonsai Rx Project Aeon Database
net472
-
diff --git a/src/Aeon.Environment/Aeon.Environment.csproj b/src/Aeon.Environment/Aeon.Environment.csproj
index cbd6ec2..dde144a 100644
--- a/src/Aeon.Environment/Aeon.Environment.csproj
+++ b/src/Aeon.Environment/Aeon.Environment.csproj
@@ -6,7 +6,6 @@
Provides reactive modules for controlling and monitoring Project Aeon environments.
Bonsai Rx Project Aeon Environment
net472
-
diff --git a/src/Aeon.Foraging/Aeon.Foraging.csproj b/src/Aeon.Foraging/Aeon.Foraging.csproj
index 3efd0c4..dc7d0c4 100644
--- a/src/Aeon.Foraging/Aeon.Foraging.csproj
+++ b/src/Aeon.Foraging/Aeon.Foraging.csproj
@@ -6,7 +6,6 @@
Provides acquisition and control modules for Project Aeon foraging experiments.
Bonsai Rx Project Aeon Foraging
net472
-
diff --git a/src/Aeon.Video/Aeon.Video.csproj b/src/Aeon.Video/Aeon.Video.csproj
index ef5b7f8..ba312e9 100644
--- a/src/Aeon.Video/Aeon.Video.csproj
+++ b/src/Aeon.Video/Aeon.Video.csproj
@@ -6,7 +6,6 @@
Provides reactive modules for video acquisition in Project Aeon experiments.
Bonsai Rx Project Aeon Video
net472
-
diff --git a/src/Aeon.Vision.Sleap/Aeon.Vision.Sleap.csproj b/src/Aeon.Vision.Sleap/Aeon.Vision.Sleap.csproj
index 3eaf9f8..4005134 100644
--- a/src/Aeon.Vision.Sleap/Aeon.Vision.Sleap.csproj
+++ b/src/Aeon.Vision.Sleap/Aeon.Vision.Sleap.csproj
@@ -6,7 +6,6 @@
Provides reactive modules for SLEAP based pose estimation used for Project Aeon experiments.
Bonsai Rx Project Aeon Vision Sleap
net472
-
diff --git a/src/Aeon.Vision/Aeon.Vision.csproj b/src/Aeon.Vision/Aeon.Vision.csproj
index 0b1d5ab..264084c 100644
--- a/src/Aeon.Vision/Aeon.Vision.csproj
+++ b/src/Aeon.Vision/Aeon.Vision.csproj
@@ -6,7 +6,6 @@
Provides reactive modules for computer vision used for Project Aeon experiments.
Bonsai Rx Project Aeon Vision
net472
-