Skip to content

style(econify): apply deno fmt formatting #73

style(econify): apply deno fmt formatting

style(econify): apply deno fmt formatting #73

name: "econify: test & enforce coverage"
on:
push:
branches: ["**"]
paths:
- "packages/econify/**"
- ".github/workflows/econify-coverage.yml"
pull_request:
branches: ["**"]
paths:
- "packages/econify/**"
- ".github/workflows/econify-coverage.yml"
concurrency:
group: "econify-coverage-${{ github.ref }}"
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
test-and-coverage:
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/econify
steps:
- uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
cache: true
- name: Format & Lint
run: |
deno fmt --check
deno lint
- name: Run tests with coverage (parallel)
run: deno test --allow-read --coverage=coverage --parallel
env:
DENO_JOBS: 4 # Optimize for GitHub Actions runners (2-4 cores)
- name: Generate LCOV (exclude non-critical modules)
run: deno coverage coverage --lcov --exclude="src/io/|src/historical/|src/fx/live_fx.ts|src/inflation/inflation.ts|src/inference/inference.ts" > coverage/lcov.info
- name: Enforce 80% coverage
run: deno run --allow-read scripts/check_coverage.ts coverage/lcov.info 80
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: econify-coverage-lcov
path: packages/econify/coverage/lcov.info
- name: Upload to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: packages/econify/coverage/lcov.info
flags: econify
slug: Tellimer/open-source
verbose: true
fail_ci_if_error: false # do not fail CI on Codecov upload issues; gate is enforced above