Feat - add Task component (#4) #56
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |