| name: ci |
| |
| on: |
| push: |
| branches: [ main ] |
| pull_request: |
| branches: [ main ] |
| workflow_dispatch: |
| |
| jobs: |
| test: |
| name: OTP ${{matrix.otp}} / rebar3 ${{matrix.rebar3}} / OS ${{matrix.os}} |
| strategy: |
| matrix: |
| os: ['ubuntu-22.04'] |
| otp: ['26.1', '25.3', '24.3'] |
| rebar3: ['3.22.1'] |
| include: |
| - otp: '26.1' |
| rebar3: '3.22.1' |
| os: 'windows-2022' |
| runs-on: ${{matrix.os}} |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: erlef/setup-beam@v1 |
| with: |
| otp-version: ${{matrix.otp}} |
| rebar3-version: ${{matrix.rebar3}} |
| |
| - name: Windows - Enable Developer Command Prompt |
| uses: ilammy/msvc-dev-cmd@v1.12.1 |
| if: ${{ matrix.os == 'windows-2022' }} |
| - name: Windows - Install openssl |
| shell: pwsh |
| run: | |
| choco install openssl |
| echo "OPENSSL_INSTALL_DIR=""C:\Program Files\OpenSSL""" >> $env:GITHUB_ENV |
| if: ${{ matrix.os == 'windows-2022' }} |
| |
| - name: Restore _build |
| uses: actions/cache@v3 |
| with: |
| path: _build |
| key: _build-cache-for-os-${{matrix.os}}-otp-${{matrix.otp}}-rebar3-${{matrix.rebar3}}-hash-${{hashFiles('rebar.lock')}} |
| - name: Restore rebar3's cache |
| uses: actions/cache@v3 |
| with: |
| path: ~/.cache/rebar3 |
| key: rebar3-cache-for-os-${{matrix.os}}-otp-${{matrix.otp}}-rebar3-${{matrix.rebar3}}-hash-${{hashFiles('rebar.lock')}} |
| - run: rebar3 as test get-deps |
| - run: rebar3 as test compile |
| - run: rebar3 as test ct |
| - run: rebar3 dialyzer |
| if: ${{ matrix.otp == '26.1' && matrix.os == 'ubuntu-22.04' }} |
| - name: Run coverage |
| if: ${{ matrix.otp == '26.1' && matrix.os == 'ubuntu-22.04' }} |
| run: | |
| rebar3 as test codecov analyze |
| gcov -o c_src fast_pbkdf2 |
| - name: Upload coverage |
| if: ${{ matrix.otp == '26.1' && matrix.os == 'ubuntu-22.04' }} |
| run: | |
| pip install --user codecov |
| /home/runner/.local/bin/codecov |