chore: enable sb linting (#786) #232
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: 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 |