diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 6f6f55798a..0000000000 --- a/.codecov.yml +++ /dev/null @@ -1,9 +0,0 @@ -coverage: - status: - project: - default: - target: auto - threshold: 3% - patch: off -comment: - layout: "header, diff, changes" diff --git a/.github/workflows/ci-suite.yml b/.github/workflows/ci-suite.yml index 2cd8eb4e0a..ccddce963b 100644 --- a/.github/workflows/ci-suite.yml +++ b/.github/workflows/ci-suite.yml @@ -125,6 +125,7 @@ jobs: linux-unit-tests: name: Linux Unit Tests strategy: + fail-fast: false matrix: configuration: [ 'Debug', 'Release' ] runs-on: ubuntu-latest @@ -146,15 +147,18 @@ jobs: - name: Run Unit Tests run: sudo dotnet test tgstation-server.sln --no-build --filter FullyQualifiedName!~IntegrationTest -l "console;verbosity=detailed;noprogress=true" -c ${{ matrix.configuration }}NoService --collect:"XPlat Code Coverage" --settings build/coverlet.runsettings -r ./TestResults - - name: Store Code Coverage - uses: actions/upload-artifact@v3 + - name: Coveralls Upload + uses: Cyberboss/coveralls-action@master with: - name: linux-unit-test-coverage-${{ matrix.configuration }} - path: ./TestResults/ + github-token: ${{ secrets.github_token }} + path-to-lcov: ./TestResults/**/coverage.info + flag-name: linux-unit-test-coverage-${{ matrix.configuration }} + parallel: true windows-unit-tests: name: Windows Unit Tests strategy: + fail-fast: false matrix: configuration: [ 'Release' ] runs-on: windows-latest @@ -176,11 +180,13 @@ jobs: - name: Run Unit Tests run: dotnet test tgstation-server.sln --no-build --filter FullyQualifiedName!~IntegrationTest -l "console;verbosity=detailed;noprogress=true" -c ${{ matrix.configuration }} --collect:"XPlat Code Coverage" --settings build/coverlet.runsettings -r ./TestResults - - name: Store Code Coverage - uses: actions/upload-artifact@v3 + - name: Coveralls Upload + uses: coverallsapp/github-action@master with: - name: windows-unit-test-coverage-${{ matrix.configuration }} - path: ./TestResults/ + github-token: ${{ secrets.github_token }} + path-to-lcov: ./TestResults/**/coverage.info + flag-name: windows-unit-test-coverage-${{ matrix.configuration }} + parallel: true windows-integration-test: name: Windows Integration Test @@ -189,6 +195,7 @@ jobs: TGS_TEST_DATABASE_TYPE: SqlServer TGS_TEST_DUMP_API_SPEC: yes strategy: + fail-fast: false matrix: watchdog-type: [ 'Basic', 'System' ] configuration: [ 'Debug', 'Release' ] @@ -236,11 +243,13 @@ jobs: Start-Sleep -Seconds 10 dotnet test -c ${{ matrix.configuration }} -l "console;verbosity=detailed;noprogress=true" --collect:"XPlat Code Coverage" --settings ../../build/coverlet.runsettings -r ./TestResults - - name: Store Code Coverage - uses: actions/upload-artifact@v3 + - name: Coveralls Upload + uses: coverallsapp/github-action@master with: - name: windows-integration-test-coverage-${{ matrix.configuration }}-${{ matrix.watchdog-type }} - path: tests/Tgstation.Server.Tests/TestResults/ + github-token: ${{ secrets.github_token }} + path-to-lcov: ./TestResults/**/coverage.info + flag-name: windows-integration-test-coverage-${{ matrix.configuration }}-${{ matrix.watchdog-type }} + parallel: true - name: Store OpenAPI Spec if: ${{ matrix.configuration == 'Release' && matrix.watchdog-type == 'System' }} @@ -303,6 +312,7 @@ jobs: --health-timeout=5s --health-retries=3 strategy: + fail-fast: false matrix: database-type: [ 'Sqlite', 'PostgresSql', 'MariaDB', 'MySql' ] watchdog-type: [ 'System' ] @@ -384,11 +394,13 @@ jobs: sleep 10 dotnet test -c ${{ matrix.configuration }}NoService -l "console;verbosity=detailed;noprogress=true" --collect:"XPlat Code Coverage" --settings ../../build/coverlet.runsettings -r ./TestResults - - name: Store Code Coverage - uses: actions/upload-artifact@v3 + - name: Coveralls Upload + uses: coverallsapp/github-action@master with: - name: linux-integration-test-coverage-${{ matrix.configuration }}-${{ matrix.watchdog-type }}-${{ matrix.database-type }} - path: tests/Tgstation.Server.Tests/TestResults/ + github-token: ${{ secrets.github_token }} + path-to-lcov: ./TestResults/**/coverage.info + flag-name: linux-integration-test-coverage-${{ matrix.configuration }}-${{ matrix.watchdog-type }}-${{ matrix.database-type }} + parallel: true - name: Package Server Console if: ${{ matrix.configuration == 'Release' && matrix.watchdog-type == 'System' && matrix.database-type == 'MariaDB' }} @@ -446,92 +458,15 @@ jobs: run: npx lint-openapi -v -p -c build/OpenApiValidationSettings.json ./swagger/swagger.json upload-code-coverage: - name: Upload Code Coverage + name: Complete Code Coverage Upload needs: [linux-unit-tests, linux-integration-tests, windows-unit-tests, windows-integration-test] runs-on: ubuntu-latest steps: - - name: Checkout for .codecov.yml - uses: actions/checkout@v3 - - - name: Retrieve Linux Unit Test Coverage (Debug) - uses: actions/download-artifact@v3 + - name: Coveralls Finished + uses: coverallsapp/github-action@master with: - name: linux-unit-test-coverage-Debug - path: ./code_coverage/unit_tests/linux_unit_tests_debug - - - name: Retrieve Linux Unit Test Coverage (Release) - uses: actions/download-artifact@v3 - with: - name: linux-unit-test-coverage-Release - path: ./code_coverage/unit_tests/linux_unit_tests_release - - - name: Retrieve Linux Integration Test Coverage (Release, System, Sqlite) - uses: actions/download-artifact@v3 - with: - name: linux-integration-test-coverage-Release-System-Sqlite - path: ./code_coverage/integration_tests/linux_integration_tests_release_system_sqlite - - - name: Retrieve Linux Integration Test Coverage (Release, System, PostgresSql) - uses: actions/download-artifact@v3 - with: - name: linux-integration-test-coverage-Release-System-PostgresSql - path: ./code_coverage/integration_tests/linux_integration_tests_release_system_mariadb - - - name: Retrieve Linux Integration Test Coverage (Release, System, MariaDB) - uses: actions/download-artifact@v3 - with: - name: linux-integration-test-coverage-Release-System-MariaDB - path: ./code_coverage/integration_tests/linux_integration_tests_release_system_mysql - - - name: Retrieve Linux Integration Test Coverage (Release, System, MySql) - uses: actions/download-artifact@v3 - with: - name: linux-integration-test-coverage-Release-System-MySql - path: ./code_coverage/integration_tests/linux_integration_tests_release_system_mysql - - - name: Retrieve Windows Unit Test Coverage (Release) - uses: actions/download-artifact@v3 - with: - name: windows-unit-test-coverage-Release - path: ./code_coverage/unit_tests/windows_unit_tests_release - - - name: Retrieve Windows Integration Test Coverage (Debug, Basic) - uses: actions/download-artifact@v3 - with: - name: windows-integration-test-coverage-Debug-Basic - path: ./code_coverage/integration_tests/windows_integration_tests_debug_basic - - - name: Retrieve Windows Integration Test Coverage (Release, Basic) - uses: actions/download-artifact@v3 - with: - name: windows-integration-test-coverage-Release-Basic - path: ./code_coverage/integration_tests/windows_integration_tests_release_basic - - - name: Retrieve Windows Integration Test Coverage (Debug, System) - uses: actions/download-artifact@v3 - with: - name: windows-integration-test-coverage-Debug-System - path: ./code_coverage/integration_tests/windows_integration_tests_debug_system - - - name: Retrieve Windows Integration Test Coverage (Release, System) - uses: actions/download-artifact@v3 - with: - name: windows-integration-test-coverage-Release-System - path: ./code_coverage/integration_tests/windows_integration_tests_release_system - - - name: Upload Unit Test Coverage to CodeCov - uses: codecov/codecov-action@v3 - with: - directory: ./code_coverage/unit_tests - flags: unittests - fail_ci_if_error: true - - - name: Upload Integration Test Coverage to CodeCov - uses: codecov/codecov-action@v3 - with: - directory: ./code_coverage/integration_tests - flags: integration - fail_ci_if_error: true + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true deploy-http: name: Deploy HTTP API diff --git a/build/coverlet.runsettings b/build/coverlet.runsettings index 669f849d06..ba6d10346e 100644 --- a/build/coverlet.runsettings +++ b/build/coverlet.runsettings @@ -4,6 +4,8 @@ + lcov + false