diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml new file mode 100644 index 000000000..bc7bb3955 --- /dev/null +++ b/.github/workflows/cibuild.yml @@ -0,0 +1,63 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: CI Build + +on: + push: + branches: [ "master" ] +# pull_request: +# branches: [ "master" ] + +env: + # Path to the solution file relative to the root of the project. + SOLUTION_FILE_PATH: .\Vanara.sln + SOLUTION_PATH: . + # Configuration type to build. + # You can convert this to a build matrix if you need coverage of multiple configuration types. + # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + BUILD_CONFIGURATION: Release + NUGET_REPO: https://www.myget.org/F/vanara/api/v2/package + #NUGET_REPO: https://nuget.pkg.github.com/dahall/index.json + NUGET_AUTH_TOKEN: ${{secrets.MYGETAPIKEY}} + #NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} + +permissions: + contents: read + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1.0.2 + + - name: Restore Solution NuGet packages + working-directory: ${{env.GITHUB_WORKSPACE}} + run: msbuild /m /verbosity:quiet /t:restore /p:RunAnalyzersDuringBuild=false /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} + + - name: Restore VssApi NuGet packages + working-directory: ${{env.GITHUB_WORKSPACE}} + run: nuget restore ${{env.SOLUTION_PATH}}\PInvoke\VssApi\Vanara.PInvoke.VssApi.vcxproj -verbosity quiet + + - name: Build + working-directory: ${{env.GITHUB_WORKSPACE}} + run: msbuild /m /verbosity:quiet /t:build /p:RunAnalyzersDuringBuild=false /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} + + - name: Build VssApi NuGet package + working-directory: ${{env.GITHUB_WORKSPACE}} + run: nuget pack ${{env.SOLUTION_PATH}}\PInvoke\VssApi\Vanara.PInvoke.VssApi.nuspec -Verbosity quiet -Symbols -OutputDirectory ${{env.SOLUTION_PATH}}\PInvoke\VssApi\bin\Release + + - name: Build meta NuGet package + working-directory: ${{env.GITHUB_WORKSPACE}} + run: nuget pack ${{env.SOLUTION_PATH}}\Vanara.Library.nuspec + + - name: Publish packages + working-directory: ${{env.GITHUB_WORKSPACE}} + shell: pwsh + run: Get-ChildItem ${{env.SOLUTION_PATH}} -Include "Vanara.*.nupkg" -Recurse | ForEach-Object -Process { dotnet nuget push $_.FullName -k ${{env.NUGET_AUTH_TOKEN}} -s ${{env.NUGET_REPO}} }