Skip to content

copy example plugin for testing #25

copy example plugin for testing

copy example plugin for testing #25

Workflow file for this run

name: Unit Test
on:
push:
branches-ignore:
- 'main'
pull_request_target:
workflow_dispatch:
jobs:
unit-test:
runs-on: ubuntu-latest
steps:
- name: Self Checkout
uses: actions/checkout@v2
with:
path: 'squaredup-plugin-public'
fetch-depth: 0
- name: Checkout Plugins Repository
uses: actions/checkout@v2
with:
repository: 'squaredup/squaredup-plugin-repository'
path: 'squaredup-plugin-repository'
ref: 'main'
token: ${{ secrets.PLUGINS_REPO_TOKEN }}
- name: Setup NodeJs20.x
uses: actions/setup-node@v2
with:
node-version: '20.x'
- name: Install Dependencies
run: npm ci
working-directory: squaredup-plugin-public
timeout-minutes: 5
- name: Install Main Plugins Dependencies
run: npm ci
working-directory: squaredup-plugin-repository
timeout-minutes: 5
- name: Run Unit Tests
run: |
$pattern = '(?<=\/[v][0-9]\/).*'
$changes = git diff --name-only origin/main... ./plugins
$pluginsToTest = $changes -replace $pattern | Sort-Object -Unique
Set-Location "..\squaredup-plugin-repository"
if ( $null -eq $pluginsToTest ) {
Write-Output "Nothing to Test as no changes were found in plugins folder..."
exit 0
}
elseif ( $pluginsToTest.Count -eq 1 ) {
$pluginName = ($pluginsToTest.TrimEnd('/')) -replace "plugins/" -replace "/", "-"
Write-Output "Only Testing $pluginsToTest"
npm test -- --ci --path="../squaredup-plugin-public/$pluginsToTest" --pluginName="$pluginName"
Write-Output "Tested $pluginsToTest"
}
else {
Write-Output "Testing $($pluginsToTest.Count) Plugins..."
foreach ( $plugin in $pluginsToTest ) {
Write-Output "Testing $plugin"
$pluginName = ($plugin.TrimEnd('/')) -replace "plugins/" -replace "/", "-"
npm test -- --ci --path="../squaredup-plugin-public/$plugin" --pluginName="$pluginName"
Write-Output "Tested $plugin"
}
}
working-directory: squaredup-plugin-public
shell: pwsh
timeout-minutes: 10
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v2
with:
name: test-results
path: |
squaredup-plugin-repository/pluginUnitTests/test_output/*.xml
squaredup-plugin-repository/pluginUnitTests/test_output/html/*.html