.github/workflows/release.yml
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: ''