diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2f67b7ff..38c96445 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: Main +name: CI on: push: @@ -14,21 +14,30 @@ on: - 'Dockerfile' - '.gitconfig' - '.gitignore' - - 'appveyor.*' + - 'appveyor*.*' - 'LICENSE*' - '.idea/**' - '.vscode/**' + - '*.bat' + - '*.nuspec' + - 'tools/nuget/*' + - '.npmignore' + - 'test/config.json' + - 'test/config.json' + - 'test/double' env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true # required to setup CSC jobs: - main: + build-test: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-2019] - node: [21.x, 20.x, 18.x, 16.x] + # os: [macos-latest, ubuntu-latest, windows-2019] + # node: [21.x, 20.x, 18.x, 16.x] + os: [macos-14] + node: [20.x] steps: - name: Checkout code uses: actions/checkout@v4 @@ -47,42 +56,43 @@ jobs: with: dotnet-version: '8.0.x' # SDK Version to use; x will use the latest version of the 8.0 channel - - if: runner.os == 'macOS' - name: Remove Mono from macOS # Mono interferes with Core CLR gyp compile - run: | - sudo rm -rf /Library/Frameworks/Mono.framework - sudo pkgutil --forget com.xamarin.mono-MDK.pkg - sudo rm /etc/paths.d/mono-commands + - name: Versions + run: node -v && npm -v && dotnet --version && node -p process.platform && node -p process.arch + + # - if: runner.os == 'macOS' + # name: Mono + # run: | + # which mono + # export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig":$PKG_CONFIG_PATH + # name: Remove Mono from macOS # Incomplete Mono install interferes with gyp compile + # run: | + # sudo rm -rf /Library/Frameworks/Mono.framework + # sudo pkgutil --forget com.xamarin.mono-MDK.pkg + # sudo rm /etc/paths.d/mono-commands - if: runner.os == 'macOS' && matrix.node == '16.x' - name: Add missing packages for macOS NodeJs 16 # Mono interferes with Core CLR gyp compile + name: Add missing packages for macOS NodeJs 16 run: | pip install setuptools - name: npm install - run: npm i + run: npm ci - if: runner.os == 'Windows' name: Run .NET 4.x tests - run: npm test - - if: runner.os == 'Windows' - name: Create .NET 4.x tests report - run: node tools/coverage.js + run: node tools/test.js CI - name: "Run .net core tests" - run: npm test - env: - EDGE_USE_CORECLR: 1 - - - name: "Create .net core tests report" - run: node tools/coverage.js + run: node tools/test.js CI env: EDGE_USE_CORECLR: 1 - name: Test Report - uses: dorny/test-reporter@v1 + uses: phoenix-actions/test-reporting@v15 + if: success() with: - name: Test results (${{ matrix.os }}, ${{ matrix.node }}) # Name of the check run which will be created - path: test-results.xml # Path to test results - reporter: jest-junit # Format of test results + name: Tests (${{ matrix.os }}, ${{ matrix.node }}) # Name of the check run which will be created + path: mochawesome.json # Path to test results + reporter: mochawesome-json + fail-on-error: false