diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..29a4c0cf --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,45 @@ +name: Lint, Test, and Danger + +on: pull_request + +# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token +permissions: + checks: write + contents: write + pull-requests: write + statuses: write + +jobs: + lint-test-danger: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'yarn' + + - name: Install dependencies + run: yarn install --immutable + + - name: Lint + run: yarn lint:ci + + - name: Test + run: yarn cicoverage + env: + NODE_OPTIONS: '--no-warnings --experimental-vm-modules' + + - name: NYC Coverage Report + uses: Tintef/nyc-reporter-action@0.1.0 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPORTER: 'text' # defaults to 'text-summary' + + - name: Run danger + run: yarn run danger ci -d dangerfile.cjs + env: + DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/dangerfile.cjs b/dangerfile.cjs new file mode 100644 index 00000000..a1a0b145 --- /dev/null +++ b/dangerfile.cjs @@ -0,0 +1,21 @@ +let { danger, markdown, fail, message, warn } = require('danger') +let duti = require('duti') + +let args = { + danger, + fail, + message, + warn, + markdown, + config: { + prNetChangeThreshold: 500, + personalityNetChangeThreshold: 500, + recommendedPrReviewers: 1, + }, +} + +duti.prAssignee(args) +duti.netNegativePR(args) +duti.bigPr(args) +duti.noPrDescription(args) +duti.requestedReviewers(args)