Page MenuHomePhabricator

[CI] Make sure every build directory is under a common 'build' directory
ClosedPublic

Authored by jasonbcox on Jun 24 2020, 20:10.

Details

Summary

D6551 introduced naming the build directory based on the build name.
Although currently manageable today, it's implicitly adding a restriction on
build names such that they may not collide with any file names at the project root.
As iteration speed increases, this silent restriction may become a hinderance,
either as files in the repository are refactored/renamed or as the build config
naming scheme changes over time.

We can fix this by using a common build directory at the top-level, but still
use the naming scheme introduced in D6551.

Depends on D6711 and D6718

Test Plan
./build-configurations.py build-without-wallet
ls <toplevel>/build/build-without-wallet        # verify this exists

Event Timeline

Fabien requested changes to this revision.Jun 24 2020, 20:18
Fabien added a subscriber: Fabien.
Fabien added inline comments.
contrib/teamcity/build-configurations.py
94 ↗(On Diff #21717)

If collision is a concern then it would make sense to use something less common than build. What about ci-builds or something similar ?

This revision now requires changes to proceed.Jun 24 2020, 20:18

Snippet of first build failure:

[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  72% (13/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  77% (14/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  83% (15/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  88% (16/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  94% (17/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18), done.        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Total 18 (delta 13), reused 0 (delta 0), pack-reused 0        
[20:10:56]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] From ssh://reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging
[20:10:56]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/diff/21717 -> phabricator/diff/21717
[20:10:56]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/base/21717 -> phabricator/base/21717
[20:10:56] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:10:56] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git pack-refs --all
[20:10:56] :		 [VCS Root: Bitcoin ABC Staging] Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] The .git directory is missing in '/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc'. Running 'git init'...
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git init
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config lfs.storage /home/teamcity/buildAgent/system/git/git-48AA3180.git/lfs
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config core.sparseCheckout true
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config http.sslCAInfo
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git -c credential.helper= checkout -q -f phabricator/diff/21717
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] Cleaning Bitcoin ABC Staging in /home/teamcity/buildAgent/work/jailed-build/bitcoin-abc the file set ALL_UNTRACKED
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git clean -f -d -x
[20:10:56] : Build preparation done
[20:10:56]E: Step 1/1: Command Line (7m:32s)
[20:10:56] :	 [Step 1/1] Ant JUnit report watcher
[20:10:56] :		 [Ant JUnit report watcher] Watching paths:
[20:10:56] :		 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[20:10:56] :		 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[20:10:56] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script6163055784763277696
[20:10:56] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] Building base image for: 69bc270f7...
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:10:59] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:10:59] :	 [Step 1/1] Tag name: abc-base-image-69bc270f7
[20:18:25]W:	 [Step 1/1] + : build-without-wallet
[20:18:25]W:	 [Step 1/1] + '[' 0 -ge 1 ']'
[20:18:25]W:	 [Step 1/1] + '[' -z build-without-wallet ']'
[20:18:25]W:	 [Step 1/1] ++ git rev-parse --show-toplevel
[20:18:25]W:	 [Step 1/1] + TOPLEVEL=/work
[20:18:25]W:	 [Step 1/1] + python3 /work/contrib/teamcity/build-configurations.py build-without-wallet
[20:18:25]W:	 [Step 1/1] Traceback (most recent call last):
[20:18:25]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 118, in <module>
[20:18:25]W:	 [Step 1/1]     main()
[20:18:25]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 95, in main
[20:18:25]W:	 [Step 1/1]     build_directory.mkdir(exist_ok=True)
[20:18:25]W:	 [Step 1/1]   File "/usr/lib/python3.7/pathlib.py", line 1251, in mkdir
[20:18:25]W:	 [Step 1/1]     self._accessor.mkdir(self, mode)
[20:18:25]W:	 [Step 1/1] FileNotFoundError: [Errno 2] No such file or directory: '/work/build/build-without-wallet'
[20:18:25]W:	 [Step 1/1] cp: cannot stat '/tmp/sanitizer_logs': No such file or directory
[20:18:25]W:	 [Step 1/1] cp: cannot stat '/work/build-without-wallet': No such file or directory
[20:18:25]W:	 [Step 1/1] cp: cannot stat '/work/build/build-without-wallet': No such file or directory
[20:18:25]W:	 [Step 1/1] cp: cannot stat '/work/ibd/debug.log': No such file or directory
[20:18:28]W:	 [Step 1/1] Process exited with code 1
[20:18:28]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)

Snippet of first build failure:

[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  72% (13/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  77% (14/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  83% (15/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  88% (16/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  94% (17/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18)        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18), done.        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Total 18 (delta 13), reused 0 (delta 0), pack-reused 0        
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] From ssh://reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/diff/21717 -> phabricator/diff/21717
[20:10:55]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/base/21717 -> phabricator/base/21717
[20:10:55] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:10:55] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git pack-refs --all
[20:10:55] :		 [VCS Root: Bitcoin ABC Staging] Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] The .git directory is missing in '/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc'. Running 'git init'...
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git init
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config lfs.storage /home/teamcity/buildAgent/system/git/git-48AA3180.git/lfs
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config core.sparseCheckout true
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config http.sslCAInfo
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:10:55] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git -c credential.helper= checkout -q -f phabricator/diff/21717
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] Cleaning Bitcoin ABC Staging in /home/teamcity/buildAgent/work/jailed-build/bitcoin-abc the file set ALL_UNTRACKED
[20:10:56] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git clean -f -d -x
[20:10:56] : Build preparation done
[20:10:56]E: Step 1/1: Command Line (7m:42s)
[20:10:56] :	 [Step 1/1] Ant JUnit report watcher
[20:10:56] :		 [Ant JUnit report watcher] Watching paths:
[20:10:56] :		 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[20:10:56] :		 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[20:10:56] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script3294207831570179356
[20:10:56] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:10:56] :	 [Step 1/1] Building base image for: 69bc270f7...
[20:10:56] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:10:58] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:10:58] :	 [Step 1/1] Tag name: abc-base-image-69bc270f7
[20:18:34]W:	 [Step 1/1] + : build-clang-10
[20:18:34]W:	 [Step 1/1] + '[' 0 -ge 1 ']'
[20:18:34]W:	 [Step 1/1] + '[' -z build-clang-10 ']'
[20:18:34]W:	 [Step 1/1] ++ git rev-parse --show-toplevel
[20:18:34]W:	 [Step 1/1] + TOPLEVEL=/work
[20:18:34]W:	 [Step 1/1] + python3 /work/contrib/teamcity/build-configurations.py build-clang-10
[20:18:34]W:	 [Step 1/1] Traceback (most recent call last):
[20:18:34]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 118, in <module>
[20:18:34]W:	 [Step 1/1]     main()
[20:18:34]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 95, in main
[20:18:34]W:	 [Step 1/1]     build_directory.mkdir(exist_ok=True)
[20:18:34]W:	 [Step 1/1]   File "/usr/lib/python3.7/pathlib.py", line 1251, in mkdir
[20:18:34]W:	 [Step 1/1]     self._accessor.mkdir(self, mode)
[20:18:34]W:	 [Step 1/1] FileNotFoundError: [Errno 2] No such file or directory: '/work/build/build-clang-10'
[20:18:34]W:	 [Step 1/1] cp: cannot stat '/tmp/sanitizer_logs': No such file or directory
[20:18:34]W:	 [Step 1/1] cp: cannot stat '/work/build-clang-10': No such file or directory
[20:18:34]W:	 [Step 1/1] cp: cannot stat '/work/build/build-clang-10': No such file or directory
[20:18:34]W:	 [Step 1/1] cp: cannot stat '/work/ibd/debug.log': No such file or directory
[20:18:37]W:	 [Step 1/1] Process exited with code 1
[20:18:38]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)

Snippet of first build failure:

[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  77% (14/18)        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  83% (15/18)        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  88% (16/18)        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects:  94% (17/18)        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18)        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Compressing objects: 100% (18/18), done.        
[20:10:59]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] remote: Total 18 (delta 13), reused 0 (delta 0), pack-reused 0        
[20:11:00]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717] From ssh://reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging
[20:11:00]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/diff/21717 -> phabricator/diff/21717
[20:11:00]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/base/21716 -> phabricator/base/21716
[20:11:00]i:				 [/usr/bin/git -c credential.helper= fetch --progress origin +refs/tags/phabricator/diff/21717:refs/tags/phabricator/diff/21717]  * [new tag]             phabricator/base/21717 -> phabricator/base/21717
[20:11:00] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:11:00] :			 [Update git mirror (/home/teamcity/buildAgent/system/git/git-48AA3180.git)] /usr/bin/git pack-refs --all
[20:11:00] :		 [VCS Root: Bitcoin ABC Staging] Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] The .git directory is missing in '/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc'. Running 'git init'...
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git init
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config lfs.storage /home/teamcity/buildAgent/system/git/git-48AA3180.git/lfs
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config core.sparseCheckout true
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git config http.sslCAInfo
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git log -n1 --pretty=format:%H%x20%s 69bc270f716f3684c3a0b40e0e26b44c8e7dd5b5 --
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git -c credential.helper= checkout -q -f phabricator/diff/21717
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git show-ref refs/tags/phabricator/diff/21717
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] Cleaning Bitcoin ABC Staging in /home/teamcity/buildAgent/work/jailed-build/bitcoin-abc the file set ALL_UNTRACKED
[20:11:00] :			 [Update checkout directory (/home/teamcity/buildAgent/work/jailed-build/bitcoin-abc)] /usr/bin/git clean -f -d -x
[20:11:00] : Build preparation done
[20:11:00]E: Step 1/1: Command Line (7m:49s)
[20:11:00] :	 [Step 1/1] Ant JUnit report watcher
[20:11:00] :		 [Ant JUnit report watcher] Watching paths:
[20:11:00] :		 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[20:11:00] :		 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[20:11:00] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script78877282691062230
[20:11:00] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[20:11:00] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:11:00] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:11:00] :	 [Step 1/1] Building base image for: 69bc270f7...
[20:11:00] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[20:11:02] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[20:11:02] :	 [Step 1/1] Tag name: abc-base-image-69bc270f7
[20:18:45]W:	 [Step 1/1] + : build-diff
[20:18:45]W:	 [Step 1/1] + '[' 0 -ge 1 ']'
[20:18:45]W:	 [Step 1/1] + '[' -z build-diff ']'
[20:18:45]W:	 [Step 1/1] ++ git rev-parse --show-toplevel
[20:18:45]W:	 [Step 1/1] + TOPLEVEL=/work
[20:18:45]W:	 [Step 1/1] + python3 /work/contrib/teamcity/build-configurations.py build-diff
[20:18:46]W:	 [Step 1/1] Traceback (most recent call last):
[20:18:46]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 118, in <module>
[20:18:46]W:	 [Step 1/1]     main()
[20:18:46]W:	 [Step 1/1]   File "/work/contrib/teamcity/build-configurations.py", line 95, in main
[20:18:46]W:	 [Step 1/1]     build_directory.mkdir(exist_ok=True)
[20:18:46]W:	 [Step 1/1]   File "/usr/lib/python3.7/pathlib.py", line 1251, in mkdir
[20:18:46]W:	 [Step 1/1]     self._accessor.mkdir(self, mode)
[20:18:46]W:	 [Step 1/1] FileNotFoundError: [Errno 2] No such file or directory: '/work/build/build-diff'
[20:18:46]W:	 [Step 1/1] cp: cannot stat '/tmp/sanitizer_logs': No such file or directory
[20:18:46]W:	 [Step 1/1] cp: cannot stat '/work/build-diff': No such file or directory
[20:18:46]W:	 [Step 1/1] cp: cannot stat '/work/build/build-diff': No such file or directory
[20:18:46]W:	 [Step 1/1] cp: cannot stat '/work/ibd/debug.log': No such file or directory
[20:18:49]W:	 [Step 1/1] Process exited with code 1
[20:18:49]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
contrib/teamcity/build-configurations.py
95 ↗(On Diff #21717)

Failure: you need to build the parents as well by adding parents=True

contrib/teamcity/build-configurations.py
94 ↗(On Diff #21717)

While true, it shouldn't be necessary. It's very common to do out-of-tree builds in a build directory. I would argue this habit is so common that naming anything at the root level build and committing it to source control would be a very bad idea. Because of this assumption, we can also assume it's safe to use in CI.

If there's a stronger reason to pick a more specialized name that I haven't thought of, I'm open to switching. Probably something even more specific like abc-ci-builds

Fix to make sure the entire build path is created

contrib/teamcity/build-configurations.py
94 ↗(On Diff #21717)

It's very common to do out-of-tree builds in a build directory

It looks like you're advocating against yourself. If it is common then it might conflict with the user tree (the user is not necessarily the CI).

contrib/teamcity/build-configurations.py
94 ↗(On Diff #21717)

Good point.

build -> abc-ci-builds and added it to .gitignore

This revision is now accepted and ready to land.Jun 25 2020, 07:09