pipeline {
agent {
kubernetes {
yaml """
spec:
securityContext:
runAsUser: 1000
containers:
- name: rust-build-agent
image: rust:1.45.1-stretch
tty: true
command:
- cat
"""
defaultContainer 'rust-build-agent'
}
}
stages {
stage('Check') {
parallel {
stage('Rustfmt') {
steps {
sh 'rustup component add rustfmt'
sh 'cargo fmt --all -- --check'
}
}
stage('Clippy') {
steps {
sh 'rustup component add clippy'
sh 'cargo clippy --all --all-targets --all-features -- -Dwarnings'
}
}
}
}
stage('Test') {
steps {
sh 'cargo test --all --all-targets --all-features'
}
}
stage('Build') {
steps {
sh 'cargo build --release --all --all-targets --all-features'
}
}
}
}