name: Mutation Testing
on:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *' # run once every day at 00:00 UTC
permissions: {}
jobs:
  lint:
    name: Run mutation testing
    runs-on: ubuntu-latest
    permissions:
      contents: read # for actions/checkout
    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
        with:
          persist-credentials: false

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          cache: npm
          node-version-file: '.node-version'

      - name: Install Dependencies
        run: npm ci --ignore-scripts

      - name: Run mutation testing
        run: npm run testonly:mutate

      - name: Upload mutation testing report
        uses: actions/upload-artifact@v3
        with:
          name: mutationTestingReport
          path: ./reports/mutation/mutation.html