devlato/react-shortcut

View on GitHub
.github/workflows/publish.yml

Summary

Maintainability
Test Coverage
name: Publish

on:
  push:
    tags:
      - '*'

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:
    name: Tests
    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: Upload coverage
        uses: actions/upload-artifact@v1
        with:
          name: test_coverage
          path: coverage
  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
  docs:
    needs: build_storybook
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Download storybook
        uses: actions/download-artifact@v1
        with:
          name: storybook
          path: docs
      - name: Deploy Storybook to GitHub Pages
        uses: crazy-max/ghaction-github-pages@v1
        with:
          target_branch: 'gh-pages'
          build_dir: docs
          committer_name: 'GitHub Action'
          committer_email: 'github@devlato.com'
          commit_message: 'Update the Storybook on GitHub Pages'
        env:
          GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
          GITHUB_PAT: '${{ secrets.GH_PAT }}'
  publish:
    needs: [secrets, lint, test, build_storybook]
    name: Publish to npm
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
      - name: Install dependencies
        run: npm ci
      - name: Publish
        run: |
          echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
          npm publish
        env:
          GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
          NPM_TOKEN: '${{ secrets.NPM_AUTH_TOKEN }}'
  update_changelog:
    needs: [publish]
    name: Update changelog
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.0.0
        with:
          fetch-depth: 0
      - name: Generate changelog
        uses: ahmadawais/action-auto-changelog@1.0.0
        with:
          github_token: '${{ secrets.GH_PAT }}'