pipeline {
   agent {
     docker {
       image 'rust:latest'
       args '--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'
     }
   }
 }