jasonraimondi/route-strings

View on GitHub
.github/workflows/test.yml

Summary

Maintainability
Test Coverage
name: Continuous Integration

on:
  pull_request:
  push:

env:
  DENO_VERSION: v1.x

jobs:
  test:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: denoland/setup-deno@v1
        with:
          deno-version: ${{ env.DENO_VERSION }}
      - run: deno fmt --check
      - run: deno test --coverage=./coverage
      - run: deno coverage ./coverage --lcov --output=coverage/lcov.info
      - run: deno bench
      - if: github.event_name == 'push' && github.ref == 'refs/heads/main'
        name: report coverage to code climate
        run: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
          ./cc-test-reporter format-coverage -t lcov coverage/lcov.info
          ./cc-test-reporter upload-coverage
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}

  publish:
    needs: test
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2.2.2
        with:
          version: 7
      - uses: denoland/setup-deno@v1
        with:
          deno-version: ${{ env.DENO_VERSION }}
      - uses: actions/setup-node@v3
        with:
          node-version: '18.x'
          registry-url: 'https://registry.npmjs.org'
      - run: echo ${{ github.ref_name }} > VERSION
      - run: cat VERSION
      - run: deno run -A bin/build_npm.ts ${{ github.ref_name }}
      - run: npm publish --access=public
        working-directory: ./npm
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}