bylapidist/components

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
name: Release
on:
    push:
        branches:
            - master
jobs:
    release:
        name: Release
        runs-on: ubuntu-latest
        steps:
            - name: Checkout
              uses: actions/checkout@v4

            - name: Setup Node.js
              uses: actions/setup-node@v4
              with:
                  node-version: 20

            - name: Get node.js cache directory
              id: node-cache-dir
              run: echo "::set-output name=dir::$(npm config get cache)"

            - name: Cache npm dependencies
              uses: actions/cache@v4
              with:
                  path: ${{ steps.node-cache-dir.outputs.dir }}
                  key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
                  restore-keys: ${{ runner.os }}-node-

            - name: Install dependencies
              run: npm ci

            - name: Run tests
              run: npm run test

            - name: Upload coverage to Codecov
              uses: codecov/codecov-action@v4
              with:
                  token: ${{ secrets.CODECOV_TOKEN }}
                  file: ./coverage/coverage-final.json
                  flags: unittests

            - name: Run build
              run: npm run build

            - name: Build storybook
              run: |
                  npm run build:storybook
                  touch storybook-static/.nojekyll
                  echo "components.lapidist.net" >> storybook-static/CNAME

            - name: Release
              env:
                  GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
                  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
              run: npx semantic-release

            - name: Deploy
              uses: JamesIves/github-pages-deploy-action@releases/v3
              with:
                  ACCESS_TOKEN: ${{ secrets.GH_TOKEN }}
                  BRANCH: gh-pages
                  FOLDER: storybook-static