Codecov CI #121
Workflow file for this run
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: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
permissions: read-all | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
cache: yarn | |
- name: Install deps | |
run: yarn install --frozen-lockfile | |
- name: Check code formatting | |
run: yarn run prettier --check . | |
- name: Lint code | |
run: yarn run eslint . | |
- name: Run type checks | |
run: yarn run tsc --noEmit | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
cache: yarn | |
- name: Install deps | |
run: yarn install --frozen-lockfile | |
- name: Run tests | |
run: yarn run test | |
- name: Upload test results to codecov | |
uses: codecov/test-results-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: junit.xml | |
flags: unit | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: coverage/clover.xml | |
flags: unit | |
e2e-test: | |
name: E2E Test | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
cache: yarn | |
- name: Install deps | |
run: yarn install --frozen-lockfile | |
# https://github.com/microsoft/playwright/issues/7249 | |
- name: Store Playwright version as env | |
run: | | |
PLAYWRIGHT_VERSION="$(yarn run --silent playwright --version | cut -d' ' -f2)" | |
echo "Playwright version is ${PLAYWRIGHT_VERSION}" | |
echo "PLAYWRIGHT_VERSION=${PLAYWRIGHT_VERSION}" >> ${GITHUB_ENV} | |
- name: Cache Playwright browsers | |
id: cache-playwright-browsers | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ms-playwright | |
key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }} | |
- name: Install Playwright browsers | |
if: ${{ steps.cache-playwright-browsers.outputs.cache-hit != 'true' }} | |
run: yarn run playwright install --with-deps | |
- name: Run end-to-end tests | |
env: | |
# NOTE: E2E includes build step, so it will upload the bundle analysis report | |
# if the upload token is provided. | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
run: yarn run e2e | |
- name: Upload test results to codecov | |
uses: codecov/test-results-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: junit.xml | |
flags: e2e | |
- name: Upload Playwright reports | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-artifacts | |
path: | | |
playwright-report/ | |
test-results/ | |
retention-days: 7 |