Skip to content

chore: enable sb linting (#786) #232

chore: enable sb linting (#786)

chore: enable sb linting (#786) #232

Workflow file for this run

name: Uploady Build
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
defaults:
run:
shell: bash
permissions:
pull-requests: write
contents: write
actions: read
checks: write
jobs:
prep-e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: Install dependencies
uses: cypress-io/github-action@v6
with:
runTests: false
build:
name: Build Library
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: Build
run: pnpm build
bundle:
name: Create code bundles
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: Bundle for Production
id: bundle-prod
run: |
pnpm bundle:prod
- name: Cache Bundle Folder
id: cache-bundle
uses: actions/cache@v4
with:
path: bundle
key: bundle-${{ runner.os }}-${{ hashFiles('bundle/**') }}
- name: Bundle Size Report
id: bundle-size-report
uses: ./.github/actions/bundle-size-report
with:
reportData: ${{ steps.bundle-prod.outputs.BUNDLE_SIZE_REPORT_DATA }}
sb:
name: Build Storybook
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: build storybook
run: pnpm sb:build:internal
- name: Cache SB Build
id: cache-sb
uses: actions/cache@v4
with:
path: .sb-static
key: sb-static-${{ hashFiles('lerna.json') }}-${{ github.run_id }}
lft:
name: Lint, Flow, Types
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: lft
run: pnpm test:ci
unit-test:
name: Unit-Test (Vitest)
runs-on: ubuntu-latest
environment: "Rpldy-Build"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: unit-test
run: pnpm vitest:ci
- name: Show Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Unit-test Report
path: reports/junit/js-*.xml
reporter: jest-junit
- name: Upload Coverage (master only)
uses: codecov/codecov-action@v4
if: ${{ github.ref_name == 'master' }}
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/coverage-final.json
fail_ci_if_error: true
verbose: true
e2e:
runs-on: ubuntu-latest
needs:
- prep-e2e
- bundle
- sb
steps:
- name: Checkout PR
uses: actions/checkout@v4
if: ${{ github.ref_name != 'master' }}
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v4
if: ${{ github.ref_name == 'master' }}
- name: Prepare
uses: ./.github/actions/prepare
with:
with-cypress: true
with-frozen: true
- name: Restore SB Build Cache
uses: actions/cache@v4
with:
path: .sb-static
key: sb-static-${{ hashFiles('lerna.json') }}-${{ github.run_id }}
restore-keys: sb-static-${{ hashFiles('lerna.json') }}-
- name: Restore Bundle Cache
uses: actions/cache@v4
with:
path: bundle
key: bundle-${{ runner.os }}-
restore-keys: bundle-${{ runner.os }}-
- name: Cypress run
id: cypress-e2e
uses: cypress-io/github-action@v6
with:
install: false
start: |
pnpm sb:serve
pnpm bundle:serve
wait-on: 'http://127.0.0.1:8001, http://127.0.0.1:8009'
command: pnpm cy:parallel:gh
- name: Check for GIT Changes (Weights File)
id: check-weights-changes
if: ${{ github.ref_name != 'master' && steps.cypress-e2e.outcome == 'success' }}
run: |
if [[ `git status --porcelain` ]]; then
echo "found changes to weights file!"
echo "WEIGHTS_HAS_CHANGES=true" >> $GITHUB_OUTPUT
else
echo "NO changes to weights file!"
fi
- name: Commit Weights File (only if there was a change)
if: ${{ steps.check-weights-changes.outputs.WEIGHTS_HAS_CHANGES == 'true' }}
run: |
git config user.email "[email protected]"
git config user.name "Uploady CI"
git status
git add cypress/e2e-weights.json
git commit -m "chore: update e2e weights file"
git push
- name: Store screenshots
uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
if-no-files-found: ignore
- name: E2E Report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: E2E Report
path: cypress/results/results-*.xml
reporter: java-junit