name: CI

on: [push, pull_request]

jobs:

  tests:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        otp: ['19.3', '22.3', 24]
    runs-on: ubuntu-20.04
    container:
      image: erlang:${{ matrix.otp }}

    steps:

    - uses: actions/checkout@v2

    - name: Cache rebar3
      uses: actions/cache@v2
      with:
        path: |
          ~/.cache/rebar3/
        key: ${{matrix.otp}}-${{hashFiles('rebar.config')}}

    - run: ./configure --enable-gcov
    - run: rebar3 compile
    - run: rebar3 xref
    - run: rebar3 dialyzer
    - run: rebar3 eunit -v

    - name: Send to Coveralls
      if: matrix.otp == 24
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        COVERALLS=true rebar3 as test coveralls send
        curl -v -k https://coveralls.io/webhook \
             --header "Content-Type: application/json" \
             --data '{"repo_name":"$GITHUB_REPOSITORY",
                      "repo_token":"$GITHUB_TOKEN",
                      "payload":{"build_num":$GITHUB_RUN_ID,
                                 "status":"done"}}'

name: CI

on: [push, pull_request]

jobs:

  tests:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        otp: ['19.3', '22.3', 24]
    runs-on: ubuntu-20.04
    container:
      image: erlang:${{ matrix.otp }}

    steps:

    - uses: actions/checkout@v2

    - name: Cache rebar3
      uses: actions/cache@v2
      with:
        path: |
          ~/.cache/rebar3/
        key: ${{matrix.otp}}-${{hashFiles('rebar.config')}}

    - run: ./configure --enable-gcov
    - run: rebar3 compile
    - run: rebar3 xref
    - run: rebar3 dialyzer

    - name: Run tests to obtain Erlang coverage
      run: |
        mv test/unload_test.erl .
        rebar3 eunit -v
        mv _build/test/cover/eunit.coverdata .

    - name: Run tests to obtain C coverage
      run: |
        mv unload_test.erl test/
        rebar3 eunit -v
        mv eunit.coverdata _build/test/cover/

    - name: Send to Coveralls
      if: matrix.otp == 24
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        COVERALLS=true rebar3 as test coveralls send
        curl -v -k https://coveralls.io/webhook \
             --header "Content-Type: application/json" \
             --data '{"repo_name":"$GITHUB_REPOSITORY",
                      "repo_token":"$GITHUB_TOKEN",
                      "payload":{"build_num":$GITHUB_RUN_ID,
                                 "status":"done"}}'

Use dirty workaround to get Erlang and C coverage
Use dirty workaround to get Erlang and C coverage
