devlato/react-shortcut

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
name: Release

on:
  push:
    branches:
      - master

jobs:
  secrets:
    name: Secrets
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Scan for secrets
        uses: evanextreme/detect-secrets-action@1.0.0
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Lint the codebase
        run: npm run lint
  test_and_report_coverage:
    name: Coverage
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Run tests
        run: npm run test:ci
      - name: Run and upload coverage
        uses: paambaati/codeclimate-action@v2.5.6
        env:
          CC_TEST_REPORTER_ID: '${{ secrets.CC_TEST_REPORTER_ID }}'
        with:
          coverageCommand: npm run test:ci
          debug: true
      - name: Upload coverage
        uses: actions/upload-artifact@v1
        with:
          name: test_coverage
          path: coverage
  build_code:
    name: Build code
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Build code
        run: npm run build
      - name: Upload the dist folder
        uses: actions/upload-artifact@v1
        with:
          name: dist
          path: dist
  build_storybook:
    name: Storybook Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Build storybook
        run: npm run storybook:build
      - name: Upload the storybook
        uses: actions/upload-artifact@v1
        with:
          name: storybook
          path: docs
  maybe_tag:
    name: Maybe tag the release
    runs-on: ubuntu-latest
    needs: [secrets, lint, test_and_report_coverage, build_code, build_storybook]
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Maybe generate tag
        uses: Klemensas/action-autotag@1.2.3
        with:
          GITHUB_TOKEN: '${{ secrets.GH_PAT }}'
          tag_prefix: ''
          tag_suffix: ''