name: Checks on: pull_request: merge_group: push: branches: [main] env: CI: 1 PRINT_GITHUB_ANNOTATIONS: 1 defaults: run: shell: bash permissions: contents: read # update-pr-template reads the repo's label list (octo.issues.listLabelsForRepo). issues: read jobs: test: name: 'Tests & checks' timeout-minutes: 15 runs-on: ubuntu-latest-16-cores-arm-open # TODO: this should probably run on multiple OSes steps: - name: Check out code uses: actions/checkout@v6 - uses: ./.github/actions/setup - name: Check for duplicate dependencies run: yarn dedupe --check - name: Check packages run: yarn check-packages - name: Check circular dependencies run: yarn check-circular-deps - name: Restore build tool caches uses: actions/cache@v5 with: path: | .lazy **/.lazy **/.tsbuild **/*.tsbuildinfo key: test-tools-${{ runner.os }}-${{ hashFiles('yarn.lock', '.oxlintrc.json', '.oxfmtrc.json', 'lazy.config.ts') }} - name: Typecheck run: yarn build-types - name: Check bundle sizes run: yarn lazy check-bundle-size - name: Check PR template run: yarn update-pr-template --check env: GH_TOKEN: ${{ github.token }} - name: Check API declarations and docs work as intended run: yarn api-check - name: Lint run: yarn lint - name: Check dotcom localizations run: | yarn build-i18n git diff --exit-code --quiet ./apps/dotcom/client/public/tla/locales/ ./apps/dotcom/client/public/tla/locales-compiled/ || (echo "Please run yarn build-i18n and commit the changes" && exit 1) # vitest's fsModuleCache (~54MB gzipped). Entries are content-hashed, so a stale # restore is safe - unmatched modules are just re-transformed. Keyed on yarn.lock so # one entry is reused across commits instead of saving a new copy on every run. - name: Restore vitest module cache uses: actions/cache@v5 with: path: node_modules/.vitest-cache key: vitest-cache-${{ runner.os }}-${{ hashFiles('yarn.lock') }} restore-keys: vitest-cache-${{ runner.os }}- - name: Test run: yarn test-ci build: name: 'Build all projects' timeout-minutes: 15 runs-on: ubuntu-latest-16-cores-arm-open steps: - name: Check out code uses: actions/checkout@v6 - uses: ./.github/actions/setup - name: Restore build tool caches uses: actions/cache@v5 with: path: | .lazy **/.lazy **/.tsbuild **/*.tsbuildinfo key: build-tools-${{ runner.os }}-${{ hashFiles('yarn.lock', 'lazy.config.ts') }} - name: Build packages # the sed pipe makes sure that github annotations come through without # turbo's prefix run: "yarn build-package | sed -E 's/^.*? ::/::/'"