From bbdbd96ec709e3cc83a081cf821fdfffce85ecb5 Mon Sep 17 00:00:00 2001 From: Jon Gjengset Date: Sat, 17 Sep 2022 12:27:38 -0700 Subject: [PATCH] Add first coverage workflow --- github/workflows/coverage.yml | 66 +++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 github/workflows/coverage.yml diff --git a/github/workflows/coverage.yml b/github/workflows/coverage.yml new file mode 100644 index 0000000..6effa8c --- /dev/null +++ b/github/workflows/coverage.yml @@ -0,0 +1,66 @@ +on: + push: + branches: [master] + paths-ignore: + - 'build_doc.sh' + - 'check.sh' + - 'run_ci_tests.sh' + - 'start_sshd.sh' + - 'stop_sshd.sh' + pull_request: + paths-ignore: + - 'build_doc.sh' + - 'check.sh' + - 'run_ci_tests.sh' + - 'start_sshd.sh' + - 'stop_sshd.sh' +name: coverage +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: llvm-tools-preview + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + - run: | + # Wait for startup of openssh-server + timeout 15 ./wait_for_sshd_start_up.sh + chmod 600 .test-key + mkdir /tmp/openssh-rs + ssh -i .test-key -v -p 2222 -l test-user localhost -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/tmp/openssh-rs/known_hosts whoami + name: Test ssh connectivity + - run: | + eval $(ssh-agent) + echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $GITHUB_ENV + echo "SSH_AGENT_PID=$SSH_AGENT_PID" >> $GITHUB_ENV + cat .test-key | ssh-add - + name: Set up ssh-agent + - name: Generate code coverage + run: cargo llvm-cov --all-features --lcov --output-path lcov.info + env: + # makes all the ignored tests not ignored + RUSTFLAGS: --cfg=ci + # we cannot use 127.0.0.1 (the default here) + # since we are running from a different container + TEST_HOST: ssh://test-user@localhost:2222 + XDG_RUNTIME_DIR: /tmp + - name: Upload to codecov.io + uses: codecov/codecov-action@v2 + with: + fail_ci_if_error: true + services: + openssh: + image: linuxserver/openssh-server:amd64-latest + ports: + - 2222:2222 + env: + USER_NAME: test-user + PUBLIC_KEY: |- + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGzHvK2pKtSlZXP9tPYOOBb/xn0IiC9iLMS355AYUPC7 + DOCKER_MODS: linuxserver/mods:openssh-server-ssh-tunnel