pipeline {
  agent {
    docker {
      image 'rust:latest'
      args '-u root --privileged'
    }
  }
  stages {
    stage('Check') {
        steps {
            sh "cargo check"
        }
    }
    stage('Test') {
        steps {
            sh "cargo test"
        }
    }
    stage('Coverage') {
        steps {
            sh "cargo install cargo-tarpaulin"
            sh "make generate-coverage"
        }
    }
  }
  post {
    always {
        cobertura coberturaReportFile: 'cobertura.xml'
    }
  }
}