--- name: 'CI' on: push: branches: - main - dev pull_request: schedule: - cron: '17 6 * * *' workflow_dispatch: jobs: check: name: Check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node and Yarn uses: volta-cli/action@v5 - name: Install dependencies run: yarn install --immutable - name: Lint run: yarn run lint - name: Type-check run: yarn run typecheck - name: Check for dead exports run: yarn run prune - name: Check formatting run: yarn run format-check test: name: Unit Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node and Yarn uses: volta-cli/action@v5 - name: Install dependencies run: yarn install --immutable - name: Test & Coverage run: yarn run coverage browser-test: name: Browser Test # Not yet a required check: the browser suite is new/potentially unstable. continue-on-error: true runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node and Yarn uses: volta-cli/action@v5 - name: Install dependencies run: yarn install --immutable # The browser binary is not in the lockfile, and the media tests need the # proprietary codecs the Chrome for Testing builds carry. - name: Install Chromium run: yarn playwright install --with-deps chromium - name: Browser test run: yarn run test:browser build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node and Yarn uses: volta-cli/action@v5 - name: Install dependencies run: yarn install --immutable - name: Build run: yarn run build - name: HACS build validation uses: 'hacs/action@22.5.0' with: category: 'plugin' # Don't attempt to load into HACS (as it loads the release, not the # build). ignore: 'hacs' - name: Upload javascript uses: actions/upload-artifact@v7 with: name: advanced-camera-card path: dist/*.js # Uploaded unarchived so the self-contained treemap can be viewed directly # in the browser rather than downloaded and unzipped. The artifact is # named after the file, as `name` is ignored when `archive` is false. - name: Upload bundle visualization uses: actions/upload-artifact@v7 with: path: visualizations/treemap.html archive: false