name: Test WHY2

on:
  push:
    branches: [ development ]
  workflow_dispatch:

jobs:
  test-why2-script:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        os:  [ ubuntu-latest ]
        include:
          - os: ubuntu-latest
            output: out/why2-test
            configure: configure.sh
            build: build.sh
            app: why2

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          ref: development

#     - if: matrix.os == 'ubuntu-latest'
#       name: Update packages
#       run: |
#         sudo apt update
#         sudo apt upgrade

      - name: Permissions
        run: |
          chmod +x ${{ matrix.configure }}
          chmod +x ${{ matrix.build }}

      - name: Praparating
        run: sudo ./${{ matrix.configure }}

      - name: Install WHY2 (Lib)
        run: sudo ./${{ matrix.build }} install

      - name: Install WHY2 (App)
        run: sudo ./${{ matrix.build }} app

      - name: Build WHY2 (Test)
        run: ./${{ matrix.build }} test

      - name: Test Lib
        run: ./${{ matrix.output }}

      - name: Test App
        run: ${{ matrix.app }}

  test-why2-makefile:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        os:  [ ubuntu-latest ]
        include:
          - os: ubuntu-latest
            output: out/why2-test
            configure: configure.sh
            app: why2

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          ref: development

#     - if: matrix.os == 'ubuntu-latest'
#       name: Update packages
#       run: |
#         sudo apt update
#         sudo apt upgrade

      - name: Permissions
        run: chmod +x ${{ matrix.configure }}

      - name: Praparating
        run: sudo ./${{ matrix.configure }}

      - name: Install WHY2
        run: sudo make install

      - name: Build WHY2 Test
        run: make test

      - name: Test Lib
        run: ./${{ matrix.output }}

      - name: Test App
        run: ${{ matrix.app }}