Skip to content

feat(ci): Code coverage for integration tests. #34

feat(ci): Code coverage for integration tests.

feat(ci): Code coverage for integration tests. #34

Workflow file for this run

name: Nix
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
integration:
runs-on: ubuntu-latest
strategy:
matrix:
# aarch64-linux and friends require emulation, which is terribly slow.
# so slow, that the test doesn't pass.
# TODO: set up aarch64 worker?
system: [x86_64, i686]
check: [loop, tcp, rdma]
exclude:
# Failed to find module 'rdma_rxe'
- system: i686
check: rdma
name: ${{ matrix.system }} - ${{ matrix.check }}
steps:
- uses: actions/checkout@v3
- name: Setup QEMU User and binfmt
uses: docker/setup-qemu-action@v3
if: ${{ matrix.system != 'x86_64' && matrix.system != 'i686' }}
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
with:
extra-conf: "extra-platforms = ${{ matrix.system }}-linux"
- name: Setup Magic Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run Flake Check
run: nix build -L .#checks.${{ matrix.system }}-linux.${{ matrix.check }}
- name: Copy coverage to current directory
run: cp $(nix eval --raw .#checks.${{ matrix.system }}-linux.${{ matrix.check }})/nvmet.lcov .
- name: Upload to codecov.io
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
file: nvmet.lcov
name: ${{ matrix.system }}-${{ matrix.check }}