on:
  push:
    branches: [master]
  pull_request:

# Workaround for SHA1 on Go 1.18. There are some kinks to be worked out. See
# the tracking issue for more info: https://github.com/golang/go/issues/41682
env:
  GODEBUG: x509sha1=1

name: Test
jobs:
  test-linux:
    strategy:
      matrix:
        go-version: [1.20.x]
    runs-on: ubuntu-latest
    steps:
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Test
      run: go test ./...
  test-linux-tpm12:
    strategy:
      matrix:
        go-version: [1.20.x]
    runs-on: ubuntu-latest
    steps:
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Install libtspi
      run: sudo apt-get install -y libtspi-dev
    - name: Test
      run: go test -tags tspi ./...
  test-macos:
    strategy:
      matrix:
        go-version: [1.20.x]
    runs-on: macos-latest
    steps:
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v2
      # See https://github.com/google/go-tpm-tools#macos-dev
    - name: Install openssl
      run: brew install openssl@1.1
    - name: Link openssl
      run: sudo ln -s $(brew --prefix openssl@1.1)/include/openssl /usr/local/include
    - name: Test
      run: C_INCLUDE_PATH="$(brew --prefix openssl@1.1)/include" LIBRARY_PATH="$(brew --prefix openssl@1.1)/lib" go test ./...
  test-windows:
    strategy:
      matrix:
        go-version: [1.20.x]
    runs-on: windows-latest
    steps:
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Test
      run: go build ./...
