name: valgrind

on:
  push:
    branches:
      - master
    paths:
      - '**'
      - '!.gitignore'
      - '!LICENSE'
      - '!README.md'
      - '!docs/**'
      - '!examples/**'
      - '.github/workflows/tsan.yml'
      - '.github/workflows/valgrind.yml'
  workflow_dispatch:

jobs:
  linux:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          submodules: true
      - name: install valgrind
        run: sudo apt-get update && sudo apt-get install valgrind
      - name: build
        run: |
          make BUILD_TYPE=RelWithDebInfo
      - name: test
        run: |
          git submodule update --init --checkout --depth 1
          valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --error-exitcode=1 ./build/run-test262 -m -c test262.conf -c test262-fast.conf -a
