Skip to content

test

test #36

Workflow file for this run

name: Test
on:
push:
branches-ignore:
- dependabot/**
pull_request: {}
workflow_call:
inputs:
report:
default: true
type: boolean
env:
report: ${{ github.event_name != 'workflow_call' || inputs.report }}
notDependabot: ${{ github.event_name != 'pull_request' && github.event.pull_request.user.login != 'dependabot[bot]' }}
jobs:
Prepare:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.create-matrix.outputs.matrix }}
should-skip: ${{ steps.skip-check.outputs.should_skip }}
steps:
- name: Create Matrix
id: create-matrix
run: |
MATRIX="{'node-version':['20.x']}"
echo "matrix=$MATRIX" >> "$GITHUB_OUTPUT"
- id: skip-check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: "same_content_newer"
skip_after_successful_duplicate: "true"
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
- run: |
echo ${{ env.report && env.notDependabot }}
echo ${{ env.report }}
echo ${{ env.notDependabot }}
echo ${{ !env.notDependabot }}
Style:
runs-on: ubuntu-latest
needs: [Prepare]
if: needs.Prepare.outputs.should-skip != 'true'
strategy:
matrix: ${{ fromJson(needs.Prepare.outputs.matrix) }}
permissions:
checks: write
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Run ESLint
run: pnpm lint:ci --output-file .eslint_report.json --format json
continue-on-error: true
- name: Annotate ESLint Results
if: ${{ env.report }}
uses: ataylorme/eslint-annotate-action@v3
with:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
report-json: .eslint_report.json
fail-on-warning: true
markdown-report-on-step-summary: true
- name: Run Prettier
run: pnpm prettier:ci
- name: Type Coverage
run: pnpm type-coverage
Test:
runs-on: ubuntu-latest
needs: [Prepare]
if: needs.Prepare.outputs.should-skip != 'true'
strategy:
matrix: ${{ fromJson(needs.Prepare.outputs.matrix) }}
permissions:
checks: write
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Type Check
run: pnpm tsc
- name: Test with vitest
if: ${{ !cancelled() }}
run: pnpm run test:ci --coverage --reporter junit --outputFile ./coverage/junit.xml
- name: Upload coverage to Codecov
if: ${{ env.report && env.notDependabot }}
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload test results to Codecov
if: ${{ !cancelled() && env.report && env.notDependabot }}
uses: codecov/test-results-action@v1
with:
fail_ci_if_error: true
files: ./coverage/junit.xml
token: ${{ secrets.CODECOV_TOKEN }}