# # Runs the test suites on every push and pull request. # # `runs-on` uses the label most Gitea runners register by default. If yours # registers something else, change it here — nothing in these jobs depends on a # particular image beyond node, python3, and git. # name: CI on: push: branches: - main pull_request: jobs: test: name: Tests runs-on: ubuntu-latest steps: - name: Check out uses: actions/checkout@v4 - name: Set up Node uses: actions/setup-node@v4 with: node-version: 20 - name: Validate the extension manifest run: node -e "JSON.parse(require('fs').readFileSync('extension.json', 'utf8'))" - name: Syntax-check every script run: find Scripts Tests -name '*.js' -print0 | xargs -0 -n1 node --check # No install step: the Nova runtime and the Gitea server are both stubbed, # and the git fixtures are built in temporary directories. - name: Run the test suites run: Tests/run.sh images: name: Generated images runs-on: ubuntu-latest steps: - name: Check out uses: actions/checkout@v4 # Images/ is generated from the shapes in Tools/make-icons.py. --check # compares decompressed pixels rather than file bytes, so a different # zlib version cannot fail this spuriously. - name: Check the committed images match their source run: python3 Tools/make-icons.py --check