Skip to content

Automated tests

Automated tests #519

Workflow file for this run

name: Rust CI
on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
push:
branches:
- main
jobs:
check-formatting-linting:
permissions:
contents: read
checks: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: Check formatting
run: cargo fmt -- --check
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-targets -p nethsm_pkcs11 -- -D warnings --no-deps
tests:
runs-on: ubuntu-latest
container: debian:12
env:
RUST_BACKTRACE: full
RUST_LOG: trace
services:
nethsm:
image: nitrokey/nethsm:testing
ports:
- 8443:8443
steps:
- uses: actions/checkout@v2
- name: install opensc and dependencies
run: apt-get update && apt-get install -y curl opensc openssl gcc xxd jq gnutls-bin make
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy, llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- name: install demangler
run: cargo install rustfilt
- name: Build with profiling
run: ./tools/build_profiling.sh
- name: repalce localhost with nethsm
run: sed -i 's/localhost/nethsm/g' ./tools/*.sh ./tools/tests/*.sh ./p11nethsm.conf ./tools/*.conf
- name: setup NetHSM
run: ./tools/ci_setup.sh
- name: cargo test
run: ./tools/test_profiling.sh
- name: Run integration tests
run: ./tools/ci_integration_tests.sh
- name: get coverage
run: ./tools/get_coverage.sh
- name: upload coverage
uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
verbose: true
- name: build release
run: cargo build --release
- name: run fork tests
run: cd fork-tests && make
test_network:
runs-on: ubuntu-latest
# container:
# image: ubuntu:24.04
# options: --privileged
env:
RUST_BACKTRACE: full
RUST_LOG: trace
USE_SUDO_IPTABLES: true
USE_SUDO_DOCKER: true
# NETHSM_DOCKER_HOSTNAME: nethsm
# services:
# docker:
# image: docker:dind
# options: --privileged
# ports:
# - 2375:2375
steps:
- uses: actions/checkout@v2
- name: install opensc and dependencies
run: sudo apt-get update && sudo apt-get install -y curl opensc openssl gcc xxd jq gnutls-bin make
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy, llvm-tools-preview
- name: pull docker image
run: docker pull nitrokey/nethsm:testing
- uses: Swatinem/rust-cache@v2
- name: build release
run: cargo build --release
- name: run network tests
run: cargo t --features pkcs11-full-tests -p nethsm_pkcs11 --test basic -- --nocapture