Skip to content

Commit

Permalink
updating GitHub pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
agracio committed Sep 17, 2024
1 parent 1486505 commit 86d5b86
Show file tree
Hide file tree
Showing 8 changed files with 165 additions and 78 deletions.
55 changes: 55 additions & 0 deletions .github/actions/create-test-report/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: 'Test report'
description: 'Create test report'
inputs:
name:
description: 'name'
required: false
default: 'test-results'
node:
description: 'Node.js version'
required: true
os:
description: 'runs-on'
required: true

runs:
using: "composite"
steps:

- name: Read mochawesome.json
uses: actions/github-script@v7
with:
result-encoding: string
script: |
try {
const fs = require('fs')
const jsonString = fs.readFileSync('mochawesome.json')
var report = JSON.parse(jsonString);
let stats = {
passing: report.stats.passes,
skipped: report.stats.pending,
failures: report.stats.failures
};
core.notice(JSON.stringify(stats));
} catch(err) {
core.error("Error while reading or parsing mochawesome.json")
core.setFailed(err)
}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: ${{ inputs.name }}-${{ inputs.os }}-${{ inputs.node }}
path: |
test-results.xml
mochawesome.json
- name: Create test report
uses: phoenix-actions/test-reporting@v15
if: success()
with:
name: ${{ inputs.name }}-${{ inputs.os }}-v${{ inputs.node }}
fail-on-error: true
path: mochawesome.json # Path to test results
reporter: mochawesome-json
43 changes: 43 additions & 0 deletions .github/actions/setup-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: 'Setup environment'
description: 'Sets up environment'
inputs:
node:
description: 'Node.js version'
required: true
os:
description: 'runs-on'
required: true

runs:
using: "composite"
steps:

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node }}
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Cache node modules
id: cache-nodemodules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
path: node_modules
key: ${{ inputs.os }}-${{ inputs.node }}-${{ hashFiles('package-lock.json') }}

- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x' # SDK Version to use; x will use the latest version of the 8.0 channel

- name: Versions
shell: bash
run: |
node -v && npm -v && dotnet --version && node -p process.platform && node -p process.arch
- name: npm install
shell: bash
run: npm ci
27 changes: 27 additions & 0 deletions .github/actions/test-windows/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: 'Test Windows'
description: 'Runs Windows tests'
inputs:
node:
description: 'Node.js version'
required: true

runs:
using: "composite"
steps:
- uses: agracio/[email protected]
id: node_version
with:
value: "${{ inputs.node }}"
length_from_start: 2

- name: Check edge-js Windows pre-built files
uses: andstor/file-existence-action@v3
with:
files: "lib/native/win32/${{ runner.arch }}/${{ steps.node_version.outputs.substring }}/edge_coreclr.node, lib/native/win32/${{ runner.arch }}/${{ steps.node_version.outputs.substring }}/edge_nativeclr.node"
fail: true
ignore_case: true

- name: Run .NET 4.5 tests
shell: bash
run: node tools/test.js CI

91 changes: 24 additions & 67 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build and Test
name: Test

on:
push:
Expand All @@ -9,6 +9,7 @@ on:
- 'stress/*'
- 'performance/*'
- '.github/FUNDING.YML'
- '.github/workflows/build.yml'
- '**/*.md'
- '**/*.d.ts'
- '**/*.bat'
Expand All @@ -34,93 +35,49 @@ on:
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true # required to setup CSC
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1

jobs:
build-test:
test:
runs-on: ${{ matrix.os }}
name: build-test-${{ matrix.os }}-node-${{ matrix.node }}
name: test-${{ matrix.os }}-node-${{ matrix.node }}
strategy:
fail-fast: false
matrix:
# os: [macos-latest, ubuntu-latest, windows-2019]
os: [macos-14]
node: [20, 22]
# os: [macos-13, macos-14, ubuntu-22.04, windows-2022]
os: [macos-14, windows-2022]
node: [18, 20, 22]

steps:

- name: Checkout code
uses: actions/checkout@v4

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '${{ matrix.node }}'
cache: 'npm'
cache-dependency-path: package-lock.json

- name: Cache node modules
id: cache-nodemodules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
path: node_modules
key: ${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('package-lock.json') }}

# - if: runner.os == 'Windows'
# name: Setup CSC for Windows
# uses: yoavain/Setup-CSC@v5

- name: Setup dotnet
uses: actions/setup-dotnet@v4
- name: Setup env
uses: ./.github/actions/setup-env
with:
dotnet-version: '8.0.x' # SDK Version to use; x will use the latest version of the 8.0 channel

- 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
node: ${{ matrix.node }}
os: ${{ matrix.os }}

# - if: runner.os == 'macOS' && matrix.node == '16.x'
# name: Add missing packages for macOS NodeJs 16
# run: |
# pip install setuptools

- name: npm install
run: npm i --no-audit
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1

# - if: runner.os == 'Windows'
# name: Run .NET 4.5 tests
# run: node tools/test.js CI
- if: runner.os == 'Windows'
name: Run Windows tests
uses: ./.github/actions/test-windows
with:
node: ${{ matrix.node }}

- name: "Run .net core tests"
run: node tools/test.js CI
env:
EDGE_USE_CORECLR: 1

- name: Upload artifacts
uses: actions/[email protected]
if: success()
with:
name: ${{ matrix.os }}-${{ matrix.node }}
path: |
test-results.xml
mochawesome.json
- name: Test Report
uses: phoenix-actions/test-reporting@v15
if: success()
- name: Test report
uses: ./.github/actions/create-test-report
with:
name: test-results-${{ matrix.os }}-node-${{ matrix.node }}
fail-on-error: true
path: mochawesome.json # Path to test results
reporter: mochawesome-json
node: ${{ matrix.node }}
os: ${{ matrix.os }}

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!---[![Build Status](https://app.travis-ci.com/agracio/edge-js.svg?branch=master)](https://app.travis-ci.com/github/agracio/edge-js)--->
[![Build status][appveyor-image]][appveyor-url]
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/agracio/edge-js.svg?style=shield )](https://dl.circleci.com/status-badge/redirect/gh/agracio/edge-js/tree/master)
[![Actions Status](https://github.com/agracio/edge-js/workflows/Build%20and%20Test/badge.svg)](https://github.com/agracio/edge-js/actions)
[![Actions Status](https://github.com/agracio/edge-js/workflows/Test/badge.svg)](https://github.com/agracio/edge-js/actions)
[![NPM Downloads][downloads-image]][downloads-url]
<!-- [![Codacy Badge][codacy-img]][codacy-url] -->
[![Git Issues][issues-img]][issues-url]
Expand Down
19 changes: 10 additions & 9 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"nan": "^2.20.0"
},
"devDependencies": {
"follow-redirects": "^1.15.6",
"follow-redirects": "^1.15.9",
"junit-report-merger": "7.0.0",
"mocha": "10.7.3",
"mocha-junit-reporter": "^2.2.1",
Expand Down
4 changes: 4 additions & 0 deletions tools/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ const marge = require('mochawesome-report-generator')

var runner = process.argv[2];

if (process.platform !== 'win32') {
process.env.EDGE_USE_CORECLR = 1
}

if(process.argv[3] === 'coreclr'){
process.env.EDGE_USE_CORECLR = 1
}
Expand Down

0 comments on commit 86d5b86

Please sign in to comment.