diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
new file mode 100644
index 0000000..0a8b9d7
--- /dev/null
+++ b/.github/workflows/build-and-test.yml
@@ -0,0 +1,41 @@
+name: CI
+
+on:
+ pull_request:
+
+jobs:
+ build-and-test:
+ name: Build and Unit Tests (${{ matrix.os }})
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest]
+ env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup .NET SDK
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 8.0.x
+ cache: false
+
+ - name: Restore
+ run: dotnet restore Couchbase.Analytics.sln
+
+ - name: Build (Release)
+ run: dotnet build Couchbase.Analytics.sln --configuration Release --no-restore
+
+ - name: Test - Couchbase.Analytics.UnitTests
+ run: dotnet test tests/Couchbase.Analytics.UnitTests/Couchbase.Analytics.UnitTests.csproj --configuration Release --no-build --logger "trx;LogFileName=unit-tests.trx" --results-directory "TestResults"
+
+ - name: Upload Test Results
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ name: unit-test-results-${{ matrix.os }}
+ path: TestResults
diff --git a/Couchbase.Analytics.sln b/Couchbase.Analytics.sln
index 592ad31..9c47b3d 100644
--- a/Couchbase.Analytics.sln
+++ b/Couchbase.Analytics.sln
@@ -7,16 +7,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{50354FD0-1B8
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{98962587-231C-4D1F-AC3D-4C21302C331B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics", "Src\Couchbase.Analytics\Couchbase.Analytics.csproj", "{700EC51C-9F32-4C1A-826E-9252522E953F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics", "src\Couchbase.Analytics\Couchbase.Analytics.csproj", "{700EC51C-9F32-4C1A-826E-9252522E953F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics.FunctionalTests", "Tests\Couchbase.Analytics.FunctionalTests\Couchbase.Analytics.FunctionalTests.csproj", "{3E0EE6AE-0579-4AFE-B4A1-14C6C72DF5F5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics.FunctionalTests", "tests\Couchbase.Analytics.FunctionalTests\Couchbase.Analytics.FunctionalTests.csproj", "{3E0EE6AE-0579-4AFE-B4A1-14C6C72DF5F5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics.UnitTests", "Tests\Couchbase.Analytics.UnitTests\Couchbase.Analytics.UnitTests.csproj", "{890378AD-7F74-4C86-923B-24DB7539574F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics.UnitTests", "tests\Couchbase.Analytics.UnitTests\Couchbase.Analytics.UnitTests.csproj", "{890378AD-7F74-4C86-923B-24DB7539574F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D7E5390F-CFF1-42D7-A36C-D8E4FBE38918}"
ProjectSection(SolutionItems) = preProject
Directory.Packages.props = Directory.Packages.props
- .editorconfig = .editorconfig
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Couchbase.Analytics.Performer", "fit\Couchbase.Analytics.Performer\Couchbase.Analytics.Performer.csproj", "{04159D2F-74A8-4200-818F-B279DBCBBC5A}"
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 81cc86e..1627fbd 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -12,7 +12,6 @@
-
diff --git a/.editorconfig b/src/Couchbase.Analytics/.editorconfig
similarity index 100%
rename from .editorconfig
rename to src/Couchbase.Analytics/.editorconfig
diff --git a/src/Couchbase.Analytics/Properties/AssemblyInfo.cs b/src/Couchbase.Analytics/Properties/AssemblyInfo.cs
index e94da30..3dfd420 100644
--- a/src/Couchbase.Analytics/Properties/AssemblyInfo.cs
+++ b/src/Couchbase.Analytics/Properties/AssemblyInfo.cs
@@ -1,8 +1,8 @@
using System.Runtime.CompilerServices;
-#if DEBUG
+#if !SIGNING
[assembly: InternalsVisibleTo("Couchbase.Analytics.UnitTests")]
[assembly: InternalsVisibleTo("Couchbase.AnalyticsClient.FunctionalTests")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
-#endif
-[assembly: InternalsVisibleTo("Couchbase.Analytics.Performer")]
\ No newline at end of file
+ [assembly: InternalsVisibleTo("Couchbase.Analytics.Performer")]
+#endif
\ No newline at end of file