mts7_obsidian-word-frequency/.github/workflows/main.yaml
2026-03-01 19:29:46 -05:00

99 lines
2.1 KiB
YAML

name: Word Frequency Pipeline
on:
push:
branches:
- "*"
pull_request_target:
branches:
- "*"
jobs:
build_test:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request_target' && github.base_ref == 'master') }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "25"
- name: Install dependencies
run: npm install
- name: Run Prettier
run: npm run prettier
- name: Lint code
run: npm run lint
- name: Build plugin
run: npm run build
- name: Run tests
run: npm test
- name: Generate coverage
run: npm run coverage
- name: Upload coverage reports
uses: actions/upload-artifact@v4
with:
name: coverage-reports
path: coverage/
- name: Run mutation testing
run: npm run mutate
- name: Upload mutation reports
uses: actions/upload-artifact@v4
with:
name: mutation-reports
path: reports/
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: dist/
release:
needs: build_test
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "25"
- name: Install dependencies
run: npm install
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts
path: dist/
- name: Create release assets
run: |
mkdir assets
cp dist/main.js assets/main.js
cp styles.css assets/styles.css
cp manifest.json assets/manifest.json
- name: Upload release assets
uses: actions/upload-artifact@v4
with:
name: release-assets
path: assets/