diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml new file mode 100644 index 0000000..2365aec --- /dev/null +++ b/.github/workflows/cd.yaml @@ -0,0 +1,53 @@ +name: Sybil CD Pipeline + +on: + push: + branches: + - master + +jobs: + + build: + environment: Default + strategy: + matrix: + targetplatform: [x64] + + runs-on: windows-latest + + env: + Configuration: Release + Solution_Path: Sybil.sln + UnitTest_Project_Path: Sybil.UnitTests\Sybil.UnitTests.csproj + IntegrationTest_Project_Path: Sybil.IntegrationTests\Sybil.IntegrationTests.csproj + Source_Project_Path: Sybil\Sybil.csproj + Actions_Allow_Unsecure_Commands: true + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: '6.0.x' + + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v1.0.1 + + - name: Restore project + run: msbuild $env:Solution_Path /t:Restore /p:Configuration=$env:Configuration /p:RuntimeIdentifier=$env:RuntimeIdentifier + env: + RuntimeIdentifier: win-${{ matrix.targetplatform }} + + - name: Build Sybil project + run: dotnet build Sybil -c $env:Configuration + + - name: Push nuget package + uses: brandedoutcast/publish-nuget@v2.5.5 + with: + PROJECT_FILE_PATH: Sybil\Sybil.csproj + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..6e67c77 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,52 @@ +name: Sybil CI Pipeline + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + + build: + + strategy: + matrix: + targetplatform: [x64] + + runs-on: windows-latest + + env: + Solution_Path: Sybil.sln + UnitTest_Project_Path: Sybil.UnitTests\Sybil.UnitTests.csproj + IntegrationTest_Project_Path: Sybil.IntegrationTests\Sybil.IntegrationTests.csproj + Source_Project_Path: Sybil\Sybil.csproj + Actions_Allow_Unsecure_Commands: true + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: '6.0.x' + + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v1.0.1 + + - name: Execute Unit Tests + run: dotnet test $env:UnitTest_Project_Path + + - name: Execute Integration Tests + run: dotnet test $env:UnitTest_Project_Path + + - name: Restore Project + run: msbuild $env:Solution_Path /t:Restore /p:Configuration=$env:Configuration /p:RuntimeIdentifier=$env:RuntimeIdentifier + env: + Configuration: Debug + RuntimeIdentifier: win-${{ matrix.targetplatform }} \ No newline at end of file diff --git a/Sybil.sln b/Sybil.sln index 0b2ce68..0020f6f 100644 --- a/Sybil.sln +++ b/Sybil.sln @@ -7,7 +7,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sybil", "Sybil\Sybil.csproj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sybil.UnitTests", "Sybil.UnitTests\Sybil.UnitTests.csproj", "{458625E9-7427-47C6-BEE9-6269BDA00282}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sybil.IntegrationTests", "Sybil.IntegrationTests\Sybil.IntegrationTests.csproj", "{4BE3F7BF-602C-447E-B29B-011AE7274E4A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sybil.IntegrationTests", "Sybil.IntegrationTests\Sybil.IntegrationTests.csproj", "{4BE3F7BF-602C-447E-B29B-011AE7274E4A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{5BF4022B-FF97-42AC-9CE7-B8D1913BD0F8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{6028DE5F-4CA6-45C4-962F-F8C5B0BAE30D}" + ProjectSection(SolutionItems) = preProject + .github\workflows\cd.yaml = .github\workflows\cd.yaml + .github\workflows\ci.yaml = .github\workflows\ci.yaml + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -31,6 +39,9 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {6028DE5F-4CA6-45C4-962F-F8C5B0BAE30D} = {5BF4022B-FF97-42AC-9CE7-B8D1913BD0F8} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B97F59F1-BA0C-403C-9797-9BF8E107AEE7} EndGlobalSection