HTTP server #383
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
jobs: | |
main: | |
timeout-minutes: 10 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
node-version: [16, 18, 20] | |
env: | |
ELM_HOME: "${{ github.workspace }}/elm-stuff/elm-home" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "${{ matrix.node-version }}" | |
- name: Number of CPUs | |
shell: bash | |
run: | | |
node -p 'require("os").cpus().length' | |
- name: Cache node_modules | |
id: cache-node_modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: internal-node_modules-${{ matrix.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json', 'package-lock.json') }} | |
- name: Cache ELM_HOME | |
uses: actions/cache@v3 | |
with: | |
path: "${{ env.ELM_HOME }}" | |
key: elm-${{ matrix.os }}-${{ hashFiles('elm-tooling.json') }} | |
- name: npm ci | |
if: steps.cache-node_modules.outputs.cache-hit != 'true' | |
run: npm ci --no-audit | |
env: | |
NO_ELM_TOOLING_INSTALL: 1 | |
- name: elm-tooling install | |
run: npx elm-tooling install | |
# The idea is that this will install all packages mentioned in test | |
# fixtures, so that nothing needs to be downloaded while the tests | |
# run, which could result in flaky tests. | |
- name: fill ELM_HOME with packages | |
run: npx elm make Main.elm --output=/dev/null | |
working-directory: tests/install-packages | |
# Use `--forceExit` to avoid test runs “hanging” when tests are failing | |
# so that elm-watch isn’t shut down properly. | |
# Retry failing tests, as a stopgap while fixing flaky tests. | |
- name: Jest | |
run: npx jest --coverage --forceExit | |
env: | |
JEST_RETRIES: 4 |