Skip to content

Commit 2914ac9

Browse files
committed
Merge remote-tracking branch 'origin/master' into secure-pin-swap-fix-flow
2 parents 5dabaa7 + 7be07b3 commit 2914ac9

File tree

6 files changed

+73
-160
lines changed

6 files changed

+73
-160
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: 26 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ usage: $0 [CMD] [OPTIONS]
2424
'builder': os + packages to compile app +
2525
copy source code and build app
2626
-threads Max number of threads to use if compiling.
27-
-sha Use git commit sha as the tag image. Default is
28-
'latest'.
27+
Default = \$(nproc)
2928
-ci Install CI tools in image
3029
-h -help Show this message and exits
3130
-username Docker Username
@@ -36,7 +35,6 @@ EOF
3635
}
3736

3837
_setup() {
39-
commitSha="$(git rev-parse HEAD | tr -cd 'a-zA-Z0-9-')"
4038
case "${os}" in
4139
"ubuntu20.04")
4240
osBaseImage="ubuntu:20.04"
@@ -50,9 +48,10 @@ _setup() {
5048
;;
5149
esac
5250
imageName="${IMAGE_NAME_OVERRIDE:-"${org}/flow-${os}-${target}"}"
53-
imageTag="${commitSha}"
54-
if [[ "${tag}" != "NONE" ]]; then
51+
if [[ "${tag}" != "" ]]; then
5552
imageTag="${tag}"
53+
else
54+
imageTag=$(./etc/DockerTag.sh -dev)
5655
fi
5756
case "${target}" in
5857
"builder" | "master")
@@ -95,43 +94,34 @@ _push() {
9594
echo "Missing required -password=<PASS> argument"
9695
_help
9796
fi
98-
docker login --username ${username} --password ${password}
99-
if [[ "${tag}" == "NONE" ]]; then
100-
tag="latest"
97+
if [[ "${target}" != "dev" ]] && [[ "${target}" != "master" ]]; then
98+
echo "Target ${target} is not valid candidate for push to Docker Hub." >&2
99+
_help
101100
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-
;;
109101

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
102+
docker login --username "${username}" --password "${password}"
117103

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

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

123-
docker tag ${org}/flow-${os}-builder:${commitSha} ${org}/orfs:${commitSha}
124-
docker push ${org}/orfs:${commitSha}
112+
docker push "${imageName}:${tag}"
125113

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

130-
*)
131-
echo "Target ${target} is not valid candidate for push to Docker Hub." >&2
132-
_help
133-
;;
134-
esac
120+
docker tag ${org}/flow-${os}-builder:${tag} ${org}/orfs:${tag}
121+
docker push ${org}/orfs:${tag}
122+
docker tag ${org}/flow-${os}-builder:${tag} ${org}/orfs:${tag}
123+
docker 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/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)