name: "yarn unit"
|
|
on:
|
workflow_call:
|
inputs:
|
head_sha:
|
required: true
|
type: string
|
|
env:
|
NODE: "22"
|
FRONTEND_MONOREPO_DIR: "web"
|
|
jobs:
|
main:
|
name: "yarn unit"
|
runs-on: ubuntu-latest
|
timeout-minutes: 20
|
steps:
|
- uses: hmarr/debug-action@v3.0.0
|
|
- name: Configure git
|
shell: bash
|
run: |
|
set -xeuo pipefail
|
git config --global user.name 'robot-ci-heartex'
|
git config --global user.email 'robot-ci-heartex@users.noreply.github.com'
|
|
- name: Checkout
|
uses: actions/checkout@v6
|
with:
|
ref: ${{ inputs.ref }}
|
|
- name: Setup frontend environment
|
uses: ./.github/actions/setup-frontend-environment
|
with:
|
node-version: "${{ env.NODE }}"
|
directory: "${{ env.FRONTEND_MONOREPO_DIR }}"
|
|
- name: Run tests
|
working-directory: ${{ env.FRONTEND_MONOREPO_DIR }}
|
env:
|
NODE_ENV: "development"
|
run: |
|
yarn test:unit:coverage
|
|
- name: Upload coverage to Codecov
|
if: ${{ always() && github.event.pull_request.head.repo.fork == false && github.event.pull_request.user.login != 'dependabot[bot]' }}
|
uses: codecov/codecov-action@v5
|
with:
|
name: lsf-unit
|
flags: lsf-unit
|
directory: web/coverage
|
token: ${{ secrets.CODECOV_TOKEN }}
|
verbose: true
|
fail_ci_if_error: true
|
|
- name: Upload coverage
|
uses: actions/upload-artifact@v6
|
if: always()
|
with:
|
name: unit coverage
|
path: web/coverage
|