name: Tests # Gitea reads both .gitea/workflows/ and .github/workflows/, but which one a given # instance scans depends on its config — so the workflow lives here, in Gitea's # native location, and .github/workflows/tests.yml stays as a copy for if we ever # move back to GitHub. tests/ci-parity.test.mjs keeps the two identical. # # Runs in a node container rather than using setup-node: on a self-hosted Gitea # the action has to be fetched from GitHub, which is one more thing that can be # missing on a fresh runner. on: push: branches: ['**'] pull_request: workflow_dispatch: jobs: test: # Self-hosted Gitea runners are registered as internal_docker, not ubuntu-latest. runs-on: internal_docker container: image: node:22.22.1 steps: - uses: actions/checkout@v4 - name: Node version run: node --version - name: Generated files are up to date run: node portable/lib/i18n/build-messages.mjs --check - name: Tests # Bare `node --test` discovers **/*.test.mjs. `node --test tests/` fails # with "Cannot find module" — Node reads the path as a module, not a dir. run: node --test