name: Test WHY2

on:
  push:
    branches: [ development ]
  workflow_dispatch:

jobs:
  test-why2:
    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
        run: sudo ./${{ matrix.build }} install

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

      - name: Test
        run: |
          ./${{ matrix.output }} skipCheck
          ${{ app }}

  test-project:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        os:  [ ubuntu-latest ]
        include:
          - os: ubuntu-latest
            configure: configure.sh
            build: build.sh
            test: test
            
    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
        run: sudo ./${{ matrix.build }} install

      - name: Download WHY2 test project
        run: wget -O ${{ matrix.test }}.c https://gist.github.com/ENGO150/d8419b6c31ffb68ebb930a5b41af8c73/raw

      - name: Build WHY2 project
        run: cc ${{ matrix.test }}.c -lwhy2 -Wall -ljson-c -lcurl -o ${{ matrix.test }}

      - name: Run test
        run: ./${{ matrix.test }}