diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 05967830..00000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..d7babda3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +name: Build +on: + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install .NET 7.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: | + 7.0.x + 5.0.x + include-prerelease: true + + - name: Install JDK11 for Sonar Scanner + uses: actions/setup-java@v1 + with: + java-version: 1.11 + + - name: Install JetBrains + run: dotnet tool install JetBrains.dotCover.GlobalTool --global + - name: Install Sonar Scanner + run: dotnet tool install dotnet-sonarscanner --global + - name: Install dotnet-coverage + run: dotnet tool install dotnet-coverage --global + - name: Install CodeCov + run: dotnet tool install --global Codecov.Tool + + - name: Sonar start + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + #run: dotnet sonarscanner begin /o:"mihakralj" /k:"mihakralj_QuanTAlib" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.vscoveragexml.reportsPaths="./coverage.xml" + run: dotnet sonarscanner begin /o:"mihakralj" /k:"mihakralj_QuanTAlib" + /d:sonar.login="${{ secrets.SONAR_TOKEN }}" + /d:sonar.host.url="https://sonarcloud.io" + /d:sonar.cs.dotcover.reportsPaths=./coveragereport.html + + - name: Build Core DLL + run: dotnet build ./Source/QuanTAlib.csproj --verbosity normal --configuration Release --nologo + - name: Build Quantower DLL + run: dotnet build ./Quantower/Quantower.csproj --verbosity normal --configuration Release --nologo + + - name: dotnet Test + run: dotnet test ./Tests/Tests.csproj --verbosity normal --configuration Release --nologo + - name: DotCover Test XML + run: dotnet dotcover test ./Tests/Tests.csproj --verbosity normal --framework net7.0 --dcReportType=DetailedXML --dcoutput=./coveragereport.xml + - name: DotCover Test HTML + run: dotnet dotcover test ./Tests/Tests.csproj --verbosity normal --framework net7.0 --dcReportType=HTML --dcoutput=./coveragereport.html +# - name: dotnet-coverage +# run: dotnet-coverage collect 'dotnet test' -f xml -o './coverage.xml' + + - name: Sonar reporter + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: dotnet sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" + + - name: CodeCov run + run: codecov -f ./coveragereport.xml -v -t ${{ secrets.CODECOV_TOKEN }} + + - name: Codacy coverage reporter + uses: codacy/codacy-coverage-reporter-action@v1 + with: + project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} + coverage-reports: ./coveragereport.xml \ No newline at end of file diff --git a/.github/workflows/main_automation.yml b/.github/workflows/main_automation.yml index f424d9a0..26d3e2b0 100644 --- a/.github/workflows/main_automation.yml +++ b/.github/workflows/main_automation.yml @@ -1,13 +1,15 @@ -name: Main +name: Stage/build/test/release/publish on: workflow_dispatch: push: - branches: [ main ] + branches: + - '*' pull_request: - branches: [ main ] + branches: + - '*' jobs: - build: + build_test: runs-on: windows-latest steps: - name: Checkout @@ -48,12 +50,12 @@ jobs: /d:sonar.cs.dotcover.reportsPaths=./coveragereport.html - name: Build Core DLL - run: dotnet build ./Source/QuanTAlib.csproj --verbosity normal --configuration Release --nologo + run: dotnet build ./Source/QuanTAlib.csproj --verbosity normal --configuration Debug --nologo - name: Build Quantower DLL - run: dotnet build ./Quantower/Quantower.csproj --verbosity normal --configuration Release --nologo + run: dotnet build ./Quantower/Quantower.csproj --verbosity normal --configuration Debug --nologo - name: dotnet Test - run: dotnet test ./Tests/Tests.csproj --verbosity normal --configuration Release --nologo + run: dotnet test ./Tests/Tests.csproj --verbosity normal --configuration Debug --nologo - name: DotCover Test XML run: dotnet dotcover test ./Tests/Tests.csproj --verbosity normal --framework net7.0 --dcReportType=DetailedXML --dcoutput=./coveragereport.xml - name: DotCover Test HTML @@ -76,13 +78,127 @@ jobs: project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} coverage-reports: ./coveragereport.xml + release_publish: + runs-on: windows-latest + needs: [build_test] + if: ${{ github.ref == 'refs/heads/main' }} + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install .NET 7.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: | + 7.0.x + 5.0.x + include-prerelease: true + + - name: Build Core DLL + run: dotnet build ./Source/QuanTAlib.csproj --configuration Release --nologo + - name: Build Quantower DLL + run: dotnet build ./Quantower/Quantower.csproj --configuration Release --nologo + + - name: Release + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "latest" + prerelease: true + title: "Latest Build" + files: /Quantower/Settings/Scripts/Indicators/QuanTAlib/*.dll + + - name: Push package to github + run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' + --api-key ${{ secrets.GITHUB_TOKEN }} + --source https://nuget.pkg.github.com/mihakralj/index.json + --skip-duplicate + + - name: Push package to nuget.org + run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' + --api-key ${{ secrets.NUGET_DEPLOY_KEY_QUANTLIB }} + --source https://api.nuget.org/v3/index.json + --skip-duplicate + + +# build: +# runs-on: windows-latest +# steps: +# - name: Checkout +# uses: actions/checkout@v2 +# with: +# fetch-depth: 0 + +# - name: Install .NET 7.0 +# uses: actions/setup-dotnet@v1 +# with: +# dotnet-version: | +# 7.0.x +# 5.0.x +# include-prerelease: true + +# - name: Install JDK11 for Sonar Scanner +# uses: actions/setup-java@v1 +# with: +# java-version: 1.11 + +# - name: Install JetBrains +# run: dotnet tool install JetBrains.dotCover.GlobalTool --global +# - name: Install Sonar Scanner +# run: dotnet tool install dotnet-sonarscanner --global +# - name: Install dotnet-coverage +# run: dotnet tool install dotnet-coverage --global +# - name: Install CodeCov +# run: dotnet tool install --global Codecov.Tool + +# - name: Sonar start +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} +# #run: dotnet sonarscanner begin /o:"mihakralj" /k:"mihakralj_QuanTAlib" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.vscoveragexml.reportsPaths="./coverage.xml" +# run: dotnet sonarscanner begin /o:"mihakralj" /k:"mihakralj_QuanTAlib" +# /d:sonar.login="${{ secrets.SONAR_TOKEN }}" +# /d:sonar.host.url="https://sonarcloud.io" +# /d:sonar.cs.dotcover.reportsPaths=./coveragereport.html + +# - name: Build Core DLL +# run: dotnet build ./Source/QuanTAlib.csproj --verbosity normal --configuration Release --nologo +# - name: Build Quantower DLL +# run: dotnet build ./Quantower/Quantower.csproj --verbosity normal --configuration Release --nologo + +# - name: dotnet Test +# run: dotnet test ./Tests/Tests.csproj --verbosity normal --configuration Release --nologo +# - name: DotCover Test XML +# run: dotnet dotcover test ./Tests/Tests.csproj --verbosity normal --framework net7.0 --dcReportType=DetailedXML --dcoutput=./coveragereport.xml +# - name: DotCover Test HTML +# run: dotnet dotcover test ./Tests/Tests.csproj --verbosity normal --framework net7.0 --dcReportType=HTML --dcoutput=./coveragereport.html +# # - name: dotnet-coverage +# # run: dotnet-coverage collect 'dotnet test' -f xml -o './coverage.xml' + +# - name: Sonar reporter +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} +# run: dotnet sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" + +# - name: CodeCov run +# run: codecov -f ./coveragereport.xml -v -t ${{ secrets.CODECOV_TOKEN }} + +# - name: Codacy coverage reporter +# uses: codacy/codacy-coverage-reporter-action@v1 +# with: +# project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} +# coverage-reports: ./coveragereport.xml + # - name: Zip DLLs # uses: thedoctor0/zip-release@master # with: # type: 'zip' # directory: \Quantower\Settings\Scripts\Indicators\QuanTAlib # filename: QL_Quantower.zip -# + # - name: Release # uses: marvinpinto/action-automatic-releases@latest # with: @@ -91,13 +207,13 @@ jobs: # prerelease: true # title: "Pre-release Build" # files: /Quantower/Settings/Scripts/Indicators/QuanTAlib/*.zip -# + # - name: Push package to nuget.org # run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' # --api-key ${{ secrets.NUGET_DEPLOY_KEY_QUANTLIB }} # --source https://api.nuget.org/v3/index.json # --skip-duplicate -# + # - name: Push package to github # run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' # --api-key ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..e986e214 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,54 @@ +name: Publish +on: + workflow_dispatch: + +jobs: + publish: + runs-on: windows-latest + needs: build + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install .NET 7.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: | + 7.0.x + 5.0.x + include-prerelease: true + + - name: Build Core DLL + run: dotnet build ./Source/QuanTAlib.csproj --verbosity normal --configuration Release --nologo + - name: Build Quantower DLL + run: dotnet build ./Quantower/Quantower.csproj --verbosity normal --configuration Release --nologo + + - name: Zip DLLs + uses: thedoctor0/zip-release@master + with: + type: 'zip' + directory: \Quantower\Settings\Scripts\Indicators\QuanTAlib + filename: QL_Quantower.zip + + - name: Release + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "latest" + prerelease: true + title: "Pre-release Build" + files: /Quantower/Settings/Scripts/Indicators/QuanTAlib/*.zip + + - name: Push package to nuget.org + run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' + --api-key ${{ secrets.NUGET_DEPLOY_KEY_QUANTLIB }} + --source https://api.nuget.org/v3/index.json + --skip-duplicate + + - name: Push package to github + run: dotnet nuget push '.\Source\bin\Release\QuanTAlib.*.nupkg' + --api-key ${{ secrets.GITHUB_TOKEN }} + --source https://nuget.pkg.github.com/mihakralj/index.json + --skip-duplicate \ No newline at end of file