name: Frontend on: push: branches-ignore: - "dependabot/**/docs/**" - "dependabot/**/cypress-base/**" pull_request: types: [synchronize, opened, reopened, ready_for_review] jobs: frontend-build: if: github.event.pull_request.draft == false runs-on: ubuntu-20.04 steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v2 with: persist-credentials: false submodules: recursive - name: Check npm lock file version run: ./scripts/ci_check_npm_lock_version.sh ./superset-frontend/package-lock.json - name: Check if frontend changes are present id: check env: GITHUB_REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} continue-on-error: true run: ./scripts/ci_check_no_file_changes.sh frontend - name: Setup Node.js if: steps.check.outcome == 'failure' uses: actions/setup-node@v2 with: node-version: "16" - name: Install dependencies if: steps.check.outcome == 'failure' uses: ./.github/actions/cached-dependencies with: run: npm-install - name: lint if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: | npm run lint npm run prettier-check - name: Build plugins packages if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: npm run plugins:build - name: Build plugins Storybook if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: npm run plugins:build-storybook - name: superset-ui/core coverage if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: | npm run core:cover - name: unit tests if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: | npm run test -- --coverage # todo: remove this step when fix generator as a project in root jest.config.js - name: generator-superset unit tests if: steps.check.outcome == 'failure' working-directory: ./superset-frontend/packages/generator-superset run: npx jest - name: Upload code coverage if: steps.check.outcome == 'failure' working-directory: ./superset-frontend run: ../.github/workflows/codecov.sh -c -F javascript