name: Bootstrap tests

on:
  push:
    branches:
      - master
    tags:
      - 'v*'
  pull_request:
    branches:
      - master

jobs:
  bootstrap:
    name: bootstrap
    runs-on: ${{ matrix.os }}
    env:
      BOOTSTRAP_HASKELL_CABAL_VERSION: 3.6.2.0
      BOOTSTRAP_HASKELL_GHC_VERSION: 8.10.7
      BOOTSTRAP_HASKELL_NONINTERACTIVE: yes
      ARCH: 64
      JSON_VERSION: "0.0.7"
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            DISTRO: Ubuntu
          - os: macOS-11
            DISTRO: na
          - os: windows-latest
            DISTRO: na
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          submodules: 'true'

      - if: runner.os == 'Linux'
        name: Run bootstrap
        run: |
          sudo apt-get install -y libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl gzip
          sh ./.github/scripts/bootstrap.sh
        env:
          DISTRO: ${{ matrix.DISTRO }}

      - if: runner.os == 'macOS'
        name: Run bootstrap
        run: sh ./.github/scripts/bootstrap.sh
        env:
          DISTRO: ${{ matrix.DISTRO }}

      - if: runner.os == 'Windows'
        name: Run bootstrap
        run: |
          $curDir = Get-Location
          Write-Host "Current Working Directory: $curDir"
          ./scripts/bootstrap/bootstrap-haskell.ps1 -InstallDir ${GITHUB_WORKSPACE} -BootstrapUrl ("{0}/scripts/bootstrap/bootstrap-haskell" -f $curDir) -InBash
        shell: pwsh
