library 'status-jenkins-lib@v1.6.0' pipeline { agent { label 'macos && aarch64 && nix-2.11' } environment { /* Avoid cache poisoning by other jobs. */ GOCACHE = "${env.WORKSPACE_TMP}/go-build" GOPATH = "${env.WORKSPACE_TMP}/go" } options { disableConcurrentBuilds() buildDiscarder(logRotator( numToKeepStr: '20', daysToKeepStr: '30', )) } stages { stage('BuildAndTest') { matrix { axes { axis { name 'FEATURES' values 'waku', 'libp2p' } } stages { stage('Check') { steps { script { nix.shell("cargo check --all --no-default-features --features ${FEATURES}") nix.shell("cargo fmt -- --check") nix.shell("cargo clippy --all --no-default-features --features ${FEATURES} -- --deny warnings") } } } stage('BuildAndTest') { options { lock('sync-macos-${env.GIT_COMMIT}') } stages { stage('Build') { steps { script { nix.shell("cargo build --all --no-default-features --features ${FEATURES}") } } } stage('Test') { steps { script { nix.shell("cargo test --all --no-default-features --features ${FEATURES}") } } } } } } } } } post { cleanup { cleanWs() } } }