Skip to content

Feat - add Task component (#4) #56

Feat - add Task component (#4)

Feat - add Task component (#4) #56

Workflow file for this run

name: GitHub Workflows (Lint, Test, Build) Actions
# run workflow manually or during PR
on: [push, workflow_dispatch]
# Allow one concurrent deployment
# concurrency:
# group: ${{ github.ref }}
# cancel-in-progress: true
jobs:
################################## SECURITY #########################################
security:
runs-on: ubuntu-latest
environment:
name: Production
steps:
- uses: actions/checkout@master
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
continue-on-error: true # To make sure that SARIF upload gets called
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --sarif-file-output=snyk.sarif
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk.sarif
################################## INSTALL-DEP #########################################
install-dependencies:
runs-on: ubuntu-latest
name: Install dependencies
steps:
- uses: actions/checkout@v3
- name: Step Node
uses: actions/setup-node@v3
with:
node-version: '16.x'
cache: yarn
- name: Install dependencies
run: yarn install --no-lockfile
- name: zip node_modules
run: tar -czf node_modules.tar.gz ./node_modules
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: my_node_modules_artifact
path: node_modules.tar.gz
################################## LINT #########################################
lint:
needs: [install-dependencies]
runs-on: ubuntu-latest
name: Lint and check TS
steps:
- uses: actions/checkout@v3
- name: Step Node
uses: actions/setup-node@v3
with:
node-version: '16.x'
cache: yarn
- name: Load artifact node_modules
uses: actions/download-artifact@v3
with:
name: my_node_modules_artifact
- name: unzip node_modules
run: tar -xzf node_modules.tar.gz
- name: Lint and ts check
run: |
yarn ts:check
yarn lint
# - name: Dependency validation
# run: yarn dependency:validation
###################################### BUILD #####################################
build:
needs: [install-dependencies]
runs-on: ubuntu-latest
name: Build
steps:
- uses: actions/checkout@v3
- name: Step Node
uses: actions/setup-node@v3
with:
node-version: '16.x'
cache: yarn
- name: Load artifact node_modules
uses: actions/download-artifact@v3
with:
name: my_node_modules_artifact
- name: unzip node_modules
run: tar -xzf node_modules.tar.gz
- name: Build Storybook
run: yarn build
- name: zip storybook-static
run: tar -czf storybook-static.tar.gz ./storybook-static
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: my_storybook-static_artifact
path: storybook-static.tar.gz
################################## TEST #########################################
test:
needs: [build]
environment:
name: Production
runs-on: ubuntu-latest
name: Test
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- name: Step Node
uses: actions/setup-node@v3
with:
node-version: '16.x'
cache: yarn
- name: Load artifact node_modules
uses: actions/download-artifact@v3
with:
name: my_node_modules_artifact
- name: unzip node_modules
run: tar -xzf node_modules.tar.gz
- name: Load artifact storybook-static
uses: actions/download-artifact@v3
with:
name: my_storybook-static_artifact
- name: unzip storybook-static
run: tar -xzf storybook-static.tar.gz
- name: Install Playwright
run: npx playwright install --with-deps
- name: Test CI
run: yarn test-coverage:ci
- name: zip coverage
run: tar -czf coverage.tar.gz ./coverage
- name: Upload artifact coverage
uses: actions/upload-artifact@v3
with:
name: coverage_artifact
path: coverage.tar.gz
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage/storybook
fail_ci_if_error: true
files: ./coverage/storybook/coverage-storybook.json
verbose: true