mirror of
https://github.com/The-OpenROAD-Project/OpenLane.git
synced 2026-05-29 00:23:55 +08:00
113 lines
4.5 KiB
Groovy
113 lines
4.5 KiB
Groovy
// This file is used for internal testing by the OpenROAD team.
|
|
def NEW_SHA = "NONE"
|
|
def OLD_SHA = "NONE"
|
|
pipeline {
|
|
agent any;
|
|
options {
|
|
timeout(time: 8, unit: 'HOURS');
|
|
}
|
|
environment {
|
|
ROUTING_CORES = 32;
|
|
}
|
|
stages {
|
|
|
|
// not used, checkout just to keep track of changes
|
|
stage("Update OpenROAD to HEAD of master branch") {
|
|
steps {
|
|
checkout([$class: "GitSCM",
|
|
branches: [[name: "*/master"]],
|
|
userRemoteConfigs: [[url: "https://github.com/The-OpenROAD-Project/OpenROAD"]],
|
|
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'openroad']]
|
|
]);
|
|
}
|
|
}
|
|
|
|
stage('Build OpenROAD Docker image with master branch') {
|
|
steps {
|
|
sh 'PDK_ROOT=$(pwd)/pdks OPENLANE_IMAGE_NAME=efabless/openlane python3 .github/scripts/update_tools.py openroad_app';
|
|
sh 'make -C docker build-openroad_app';
|
|
script { NEW_SHA = sh (returnStdout: true, script: "python3 dependencies/tool.py -f commit openroad_app").trim(); }
|
|
}
|
|
}
|
|
|
|
stage('Build Docker OpenLane image with openroad_app master') {
|
|
steps {
|
|
sh 'make -C docker openlane OPENLANE_IMAGE_NAME=current:latest';
|
|
sh 'docker save current:latest-amd64 | gzip > openlane-current.tar.gz';
|
|
stash name: 'data', includes: 'openlane-current.tar.gz';
|
|
}
|
|
}
|
|
|
|
stage('Run Tests') {
|
|
matrix {
|
|
axes {
|
|
axis {
|
|
name 'DESIGN';
|
|
values "aes",
|
|
"aes_core",
|
|
"APU",
|
|
"blabla",
|
|
"BM64",
|
|
"gcd",
|
|
"inverter",
|
|
"manual_macro_placement_test",
|
|
"picorv32a",
|
|
"PPU",
|
|
"s44",
|
|
"salsa20",
|
|
"spm",
|
|
"usb",
|
|
"usb_cdc_core",
|
|
"wbqspiflash",
|
|
"xtea",
|
|
"y_huff",
|
|
"zipdiv";
|
|
}
|
|
}
|
|
stages {
|
|
stage('Test') {
|
|
agent any;
|
|
steps {
|
|
script {
|
|
stage("${DESIGN} - Install PDK") {
|
|
sh 'python3 -m pip install --user --upgrade --no-cache-dir pip';
|
|
sh 'python3 -m pip install --user --upgrade --no-cache-dir volare';
|
|
sh 'PDK_ROOT=$(pwd)/pdks ~/.local/bin/volare enable_or_build -t NULL -j$(nproc) $(python3 ./dependencies/tool.py open_pdks -f commit)';
|
|
}
|
|
stage("${DESIGN} - Import Docker image") {
|
|
unstash "data";
|
|
sh 'docker load --input openlane-current.tar.gz';
|
|
}
|
|
stage("${DESIGN} - Update OpenROAD commit") {
|
|
script { OLD_SHA = sh (returnStdout: true, script: "python3 dependencies/tool.py -f commit openroad_app").trim(); }
|
|
sh "sed -i s/${OLD_SHA}/${NEW_SHA}/ ./dependencies/tool_metadata.yml"
|
|
}
|
|
stage("${DESIGN} - Run test") {
|
|
sh "make OPENLANE_IMAGE_NAME=current:latest TEST_DESIGN=${DESIGN} test";
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
failure {
|
|
archiveArtifacts artifacts: "designs/**/*.log, designs/**/openroad_issue_reproducible/**/*";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
post {
|
|
failure {
|
|
emailext(
|
|
to: '$DEFAULT_RECIPIENTS',
|
|
subject: '$DEFAULT_SUBJECT',
|
|
body: '$DEFAULT_CONTENT',
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|