浏览代码

Add GitHub Actions build script

Lucas Trzesniewski 4 年之前
父节点
当前提交
7cdd65090c
共有 3 个文件被更改,包括 73 次插入4 次删除
  1. 69 0
      .github/workflows/build.yml
  2. 1 0
      src/Abc.Zebus.sln
  3. 3 4
      src/Directory.Build.props

+ 69 - 0
.github/workflows/build.yml

@@ -0,0 +1,69 @@
+
+name: Build
+on: [push, pull_request]
+
+env:
+  BUILD_DOTNET_VERSION: 3.1.x
+  BUILD_LINUX_TEST_TFM: netcoreapp3.1
+  DOTNET_NOLOGO: 1
+
+jobs:
+  windows:
+    name: Windows
+    runs-on: windows-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+
+      - name: Setup .NET
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: ${{ env.BUILD_DOTNET_VERSION }}
+
+      - name: Restore
+        run: dotnet restore src/Abc.Zebus.sln
+
+      - name: Build
+        run: dotnet build --configuration Release --no-restore src/Abc.Zebus.sln
+
+      - name: Pack
+        run: dotnet pack --configuration Release --no-build src/Abc.Zebus.sln
+
+      - name: Test
+        run: dotnet test --configuration Release --no-build src/Abc.Zebus.sln
+
+      - name: Upload NuGet
+        uses: actions/upload-artifact@v2
+        with:
+          name: NuGet
+          path: output/*.nupkg
+
+  linux:
+    name: Linux
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+
+      - name: Setup .NET
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: ${{ env.BUILD_DOTNET_VERSION }}
+
+      - name: Install RocksDb dependencies
+        run: sudo apt-get install libsnappy-dev
+
+      - name: Restore
+        run: dotnet restore src/Abc.Zebus.sln
+
+      - name: Build
+        run: |
+          for testProject in src/**/*.Tests.csproj; do
+            dotnet build --configuration Release --framework ${{ env.BUILD_LINUX_TEST_TFM }} --no-restore $testProject
+          done
+
+      - name: Test
+        run: |
+          for testProject in src/**/*.Tests.csproj; do
+            dotnet test --configuration Release --framework ${{ env.BUILD_LINUX_TEST_TFM }} --no-build $testProject
+          done

+ 1 - 0
src/Abc.Zebus.sln

@@ -20,6 +20,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "@ Solution Items", "@ Solut
 		..\azure-pipelines.yml = ..\azure-pipelines.yml
 		..\azure-pipelines.yml = ..\azure-pipelines.yml
 		..\ReleaseSteps.md = ..\ReleaseSteps.md
 		..\ReleaseSteps.md = ..\ReleaseSteps.md
 		nuget.config = nuget.config
 		nuget.config = nuget.config
+		..\.github\workflows\build.yml = ..\.github\workflows\build.yml
 	EndProjectSection
 	EndProjectSection
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Abc.Zebus.Contracts", "Abc.Zebus.Contracts\Abc.Zebus.Contracts.csproj", "{507A4411-DB8A-4663-A491-CCA29854B890}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Abc.Zebus.Contracts", "Abc.Zebus.Contracts\Abc.Zebus.Contracts.csproj", "{507A4411-DB8A-4663-A491-CCA29854B890}"

+ 3 - 4
src/Directory.Build.props

@@ -12,6 +12,8 @@
     <Nullable>enable</Nullable>
     <Nullable>enable</Nullable>
     <PublishRepositoryUrl>true</PublishRepositoryUrl>
     <PublishRepositoryUrl>true</PublishRepositoryUrl>
     <EmbedUntrackedSources>true</EmbedUntrackedSources>
     <EmbedUntrackedSources>true</EmbedUntrackedSources>
+    <ContinuousIntegrationBuild Condition="'$(TF_BUILD)' != ''">true</ContinuousIntegrationBuild>
+    <ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' != ''">true</ContinuousIntegrationBuild>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <PropertyGroup>
   <PropertyGroup>
@@ -29,6 +31,7 @@
     <PackageProjectUrl>https://github.com/Abc-Arbitrage/Zebus</PackageProjectUrl>
     <PackageProjectUrl>https://github.com/Abc-Arbitrage/Zebus</PackageProjectUrl>
     <PackageLicenseExpression>MIT</PackageLicenseExpression>
     <PackageLicenseExpression>MIT</PackageLicenseExpression>
     <Copyright>Copyright © ABC arbitrage $([System.DateTime]::Now.ToString('yyyy'))</Copyright>
     <Copyright>Copyright © ABC arbitrage $([System.DateTime]::Now.ToString('yyyy'))</Copyright>
+    <PackageOutputPath>$(MSBuildThisFileDirectory)..\output</PackageOutputPath>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <PropertyGroup Condition="'$(NCrunch)' == '1'">
   <PropertyGroup Condition="'$(NCrunch)' == '1'">
@@ -36,10 +39,6 @@
     <EnableSourceControlManagerQueries>false</EnableSourceControlManagerQueries>
     <EnableSourceControlManagerQueries>false</EnableSourceControlManagerQueries>
   </PropertyGroup>
   </PropertyGroup>
 
 
-  <PropertyGroup Condition="'$(TF_BUILD)' != ''">
-    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
-  </PropertyGroup>
-
   <ItemGroup>
   <ItemGroup>
     <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" PrivateAssets="all" />
     <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" PrivateAssets="all" />
     <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
     <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />