name: CI - Node.js - i18n - Submodule on: # Run on push events, but only for the below branches push: branches: - 'chore/update-i18n-curriculum-submodule' workflow_dispatch: permissions: contents: read jobs: test-curriculum: name: Test Curriculum runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: node-version: [24] # Exclude the languages that we currently run in the full CI suite. locale: - 'chinese' - 'espanol' - 'ukrainian' - 'japanese' - 'german' - 'swahili' steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: submodules: 'recursive' - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: ${{ matrix.node-version }} - name: Install pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 id: pnpm-install with: run_install: false - name: Setup Turbo Cache uses: ./.github/actions/setup-turbo-cache with: turbo-token: ${{ secrets.TURBO_TOKEN }} turbo-signature-key: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }} - name: Set Environment variables run: | cp sample.env .env - name: Install node_modules run: pnpm install # DONT REMOVE THIS STEP. # TODO: Refactor and use re-usable workflow and shared artifacts - name: Build Client in ${{ matrix.locale }} env: CURRICULUM_LOCALE: ${{ matrix.locale }} CLIENT_LOCALE: ${{ matrix.locale }} run: | pnpm run build - name: Install Chrome for Puppeteer run: pnpm -F=curriculum install-puppeteer - name: Run Tests env: CURRICULUM_LOCALE: ${{ matrix.locale }} CLIENT_LOCALE: ${{ matrix.locale }} run: pnpm -F=curriculum test-content