on: [push, pull_request]
name: Test
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.20.x, 1.x]
        os: [ubuntu-latest]
        arch: ["", "386"]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - name: Install Go
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Check formatting
        run: diff -u <(echo -n) <(gofmt -d .)
        if: ${{ matrix.go-version == '1.x' }}
      - name: Run go vet
        run: go vet ./...
      - name: Run staticcheck
        uses: dominikh/staticcheck-action@v1.3.0
        with:
          version: "2023.1.2"
          install-go: false
          cache-key: ${{ matrix.go-version }}
        if: ${{ matrix.go-version == '1.x' }}
      - name: Checkout tc39 tests
        run: ./.tc39_test262_checkout.sh
      - name: Run tests
        env:
          GOARCH: ${{ matrix.arch }}
        run: go test -vet=off ./...
