Skip to content

Commit c8548c4

Browse files
committed
Merge remote-tracking branch 'origin/master' into HEAD
2 parents 76073c9 + 889e4ee commit c8548c4

File tree

7 files changed

+77
-161
lines changed

7 files changed

+77
-161
lines changed

build_openroad.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ EOF
206206
fi
207207
fi
208208

209+
echo "[INFO FLW-0028] Compiling with ${PROC} threads."
210+
209211
# Only add install prefix variables after parsing arguments.
210212
YOSYS_ARGS+=" PREFIX=${INSTALL_PATH}/yosys"
211213
OPENROAD_APP_ARGS+=" -D CMAKE_INSTALL_PREFIX=${INSTALL_PATH}/OpenROAD"

etc/DockerHelper.sh

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ baseDir="$(pwd)"
88
# docker hub organization/user from where to pull/push images
99
org=openroad
1010

11+
DOCKER_CMD="docker"
12+
1113
_help() {
1214
cat <<EOF
1315
usage: $0 [CMD] [OPTIONS]
@@ -24,8 +26,7 @@ usage: $0 [CMD] [OPTIONS]
2426
'builder': os + packages to compile app +
2527
copy source code and build app
2628
-threads Max number of threads to use if compiling.
27-
-sha Use git commit sha as the tag image. Default is
28-
'latest'.
29+
Default = \$(nproc)
2930
-ci Install CI tools in image
3031
-h -help Show this message and exits
3132
-username Docker Username
@@ -36,7 +37,6 @@ EOF
3637
}
3738

3839
_setup() {
39-
commitSha="$(git rev-parse HEAD | tr -cd 'a-zA-Z0-9-')"
4040
case "${os}" in
4141
"ubuntu20.04")
4242
osBaseImage="ubuntu:20.04"
@@ -50,9 +50,10 @@ _setup() {
5050
;;
5151
esac
5252
imageName="${IMAGE_NAME_OVERRIDE:-"${org}/flow-${os}-${target}"}"
53-
imageTag="${commitSha}"
54-
if [[ "${tag}" != "NONE" ]]; then
53+
if [[ "${tag}" != "" ]]; then
5554
imageTag="${tag}"
55+
else
56+
imageTag=$(./etc/DockerTag.sh -dev)
5657
fi
5758
case "${target}" in
5859
"builder" | "master")
@@ -78,7 +79,7 @@ _setup() {
7879

7980
_create() {
8081
echo "Create docker image ${imagePath} using ${file}"
81-
docker build \
82+
${DOCKER_CMD} build \
8283
--file "${file}" \
8384
--tag "${imagePath}" \
8485
${buildArgs} \
@@ -95,43 +96,32 @@ _push() {
9596
echo "Missing required -password=<PASS> argument"
9697
_help
9798
fi
98-
docker login --username ${username} --password ${password}
99-
if [[ "${tag}" == "NONE" ]]; then
100-
tag="latest"
99+
if [[ "${target}" != "dev" ]] && [[ "${target}" != "master" ]]; then
100+
echo "Target ${target} is not valid candidate for push to Docker Hub." >&2
101+
_help
101102
fi
102-
mkdir -p build
103-
case "${target}" in
104-
"dev" )
105-
./etc/DockerHelper.sh create -os=${os} -ci -target=${target} \
106-
2>&1 | tee build/create-${os}-${target}-${tag}.log
107-
docker push ${imagePath}
108-
;;
109103

110-
"master" )
111-
# Create dev image needed as a base for builder image
112-
./etc/DockerHelper.sh create -os=${os} -target=dev \
113-
2>&1 | tee build/create-${os}-dev-${target}-${tag}.log
114-
# Create builder image
115-
./etc/DockerHelper.sh create -os=${os} -target=builder \
116-
2>&1 | tee build/create-${os}-${target}-${tag}.log
104+
${DOCKER_CMD} login --username "${username}" --password "${password}"
117105

118-
docker push ${org}/flow-${os}-dev:${commitSha}
106+
if [[ "${tag}" == "" ]]; then
107+
tag=$(./etc/DockerTag.sh -dev)
108+
fi
119109

120-
docker tag ${org}/flow-${os}-dev:${commitSha} ${org}/flow-${os}-dev:latest
121-
docker push ${org}/flow-${os}-dev:latest
110+
mkdir -p build
111+
./etc/DockerHelper.sh create -os=${os} -target=dev -tag=${tag} -ci \
112+
2>&1 | tee build/create-${os}-dev-${tag}.log
122113

123-
docker tag ${org}/flow-${os}-builder:${commitSha} ${org}/orfs:${commitSha}
124-
docker push ${org}/orfs:${commitSha}
114+
${DOCKER_CMD} push "${org}/flow-${os}-dev:${tag}"
125115

126-
docker tag ${org}/flow-${os}-builder:${commitSha} ${org}/orfs:${tag}
127-
docker push ${org}/orfs:${tag}
128-
;;
116+
if [[ "${target}" == "master" ]]; then
117+
tag=$(./etc/DockerTag.sh -master)
118+
# Create builder image
119+
./etc/DockerHelper.sh create -os=${os} -target=builder \
120+
2>&1 | tee build/create-${os}-${target}-${tag}.log
129121

130-
*)
131-
echo "Target ${target} is not valid candidate for push to Docker Hub." >&2
132-
_help
133-
;;
134-
esac
122+
${DOCKER_CMD} tag ${org}/flow-${os}-builder:${imageTag} ${org}/orfs:${tag}
123+
${DOCKER_CMD} push ${org}/orfs:${tag}
124+
fi
135125
}
136126

137127
#
@@ -161,7 +151,7 @@ fi
161151
os="ubuntu22.04"
162152
target="dev"
163153
numThreads="-1"
164-
tag="NONE"
154+
tag=""
165155
options=""
166156

167157
while [ "$#" -gt 0 ]; do

etc/DockerTag.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env bash
2+
3+
cd $(dirname $(realpath $0))/../
4+
5+
if [[ "$@" == "-dev" ]]; then
6+
file_list=(
7+
"./build_openroad.sh"
8+
"./docker/Dockerfile.builder"
9+
"./docker/Dockerfile.dev"
10+
"./etc/DependencyInstaller.sh"
11+
"./etc/DockerHelper.sh"
12+
"./tools/OpenROAD/docker/Dockerfile.builder"
13+
"./tools/OpenROAD/docker/Dockerfile.dev"
14+
"./tools/OpenROAD/docker/Dockerfile.binary"
15+
"./tools/OpenROAD/etc/DependencyInstaller.sh"
16+
)
17+
cat "${file_list[@]}" | sha256sum | awk '{print substr($1, 1, 6)}'
18+
elif [[ "$@" == "-master" ]]; then
19+
git describe
20+
else
21+
echo "Usage: $0 {-dev|-master}"
22+
exit 1
23+
fi

flow/scripts/global_place.tcl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@ if {[info exist ::env(PLACE_DENSITY_LB_ADDON)]} {
2929
}
3030

3131
set global_placement_args {}
32+
33+
# Parameters for routability mode in global placement
3234
if {$::env(GPL_ROUTABILITY_DRIVEN)} {
3335
lappend global_placement_args {-routability_driven}
3436
if { [info exists ::env(GPL_TARGET_RC)] } {
3537
lappend global_placement_args {-routability_target_rc_metric} $::env(GPL_TARGET_RC)
3638
}
3739
}
3840

41+
# Parameters for timing driven mode in global placement
3942
if {$::env(GPL_TIMING_DRIVEN)} {
4043
lappend global_placement_args {-timing_driven}
4144
}

flow/util/genReport.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,25 +194,30 @@ def get_summary(status, text):
194194
'''
195195
TODO: docs
196196
'''
197-
text += '-' * 30 + '\n'
198-
text += ' ' * 7 + f"{status} designs\n"
199-
text += '-' * 30 + '\n'
197+
tmp = ''
200198
for name, data in design_list.items():
201199
if data['status'] == status:
202200
content = gen_report(name, data)
203201
if content != '':
204-
text += content + '\n'
202+
tmp += content + '\n'
205203
# add empty line for readability
206204
if args.verbose >= 2 or status == STATUS_RED:
207-
text += '\n'
205+
tmp += '\n'
206+
if tmp != '':
207+
text += '-' * 30 + '\n'
208+
text += ' ' * 7 + f"{status} designs\n"
209+
text += '-' * 30 + '\n'
210+
text += tmp
211+
208212
return text
209213

210214

211215
def write_summary():
212216
'''
213217
Write summary and individual report files with data on design_list
214218
'''
215-
summary = '=' * 60 + '\n'
219+
summary = '\n'
220+
summary += '=' * 60 + '\n'
216221
summary += ' ' * 26 + 'SUMMARY\n'
217222
summary += '=' * 60 + '\n'
218223
summary += f"\nNumber of designs: {len(design_list.keys())}\n\n"
Lines changed: 11 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,29 @@
1-
@Library('utils@main') _
1+
@Library('utils@orfs-v2.0.1') _
22

3-
node {
3+
node('ubuntu22') {
44

5-
properties([
6-
copyArtifactPermission('${JOB_NAME},'+env.BRANCH_NAME),
7-
]);
5+
properties([copyArtifactPermission('${JOB_NAME},'+env.BRANCH_NAME)]);
86

97
stage('Checkout') {
108
checkout scm;
119
}
1210

13-
def commitHash = "none";
14-
def DOCKER_IMAGE_TAG = "latest";
11+
def DOCKER_IMAGE;
1512
stage('Build and Push Docker Image') {
16-
if (isDependencyInstallerChanged(env.BRANCH_NAME)) {
17-
commitHash = sh(script: 'git rev-parse HEAD', returnStdout: true);
18-
commitHash = commitHash.replaceAll(/[^a-zA-Z0-9-]/, '');
19-
DOCKER_IMAGE_TAG = pushCIImage(env.BRANCH_NAME, commitHash);
20-
}
13+
DOCKER_IMAGE = dockerPush('ubuntu22.04', 'orfs');
14+
echo "Docker image is $DOCKER_IMAGE";
2115
}
22-
def DOCKER_IMAGE = "openroad/flow-ubuntu22.04-dev:${DOCKER_IMAGE_TAG}";
2316

24-
docker.image("${DOCKER_IMAGE}").inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
25-
stage('Build ORFS and Stash bins') {
26-
sh "git config --system --add safe.directory '*'";
27-
localBuild();
28-
}
17+
stage('Build ORFS and Stash bins') {
18+
buildBins(DOCKER_IMAGE);
2919
}
3020

3121
stage('Run Tests') {
32-
Map tasks = [failFast: false];
33-
def test_slugs = getTestSlugs("all");
34-
for (test in test_slugs) {
35-
def currentSlug = test; // copy needed to correctly pass args to runTests
36-
tasks["${test}"] = {
37-
node {
38-
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
39-
docker.image("${DOCKER_IMAGE}").inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
40-
sh "git config --system --add safe.directory '*'";
41-
checkout scm;
42-
runTests(currentSlug);
43-
}
44-
}
45-
}
46-
}
47-
}
48-
parallel(tasks);
22+
runTests(DOCKER_IMAGE, 'pr');
4923
}
5024

51-
docker.image("${DOCKER_IMAGE}").inside('--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock') {
52-
sh "git config --system --add safe.directory '*'";
53-
stage('Report Summary') {
54-
generateReportShortSummary();
55-
}
56-
stage("Report HTML Table") {
57-
generateReportHtmlTable();
58-
}
59-
stage('Upload Metadata') {
60-
uploadMetadata(env.BRANCH_NAME, commitHash);
61-
}
62-
stage('Send Report') {
63-
def COMMIT_AUTHOR_EMAIL = sh(script: "git --no-pager show -s --format='%ae'", returnStdout: true).trim();
64-
sendEmail(env.BRANCH_NAME, COMMIT_AUTHOR_EMAIL);
65-
}
25+
stage ('Cleanup and Reporting') {
26+
finalReport(DOCKER_IMAGE);
6627
}
6728

6829
}

jenkins/public_tests_small.Jenkinsfile

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)