| commit | df0e45c18fefbfaf923a0ad2a0370773b0083e61 | [log] [tgz] |
|---|---|---|
| author | Lei YU <yulei.sh@bytedance.com> | Thu Sep 03 11:25:57 2020 +0800 |
| committer | Andrew Geissler <geissonator@yahoo.com> | Tue Sep 08 12:52:23 2020 +0000 |
| tree | 43d969f4f65f98b864731e3626c2ad818a04bb6f | |
| parent | 5d6688cc0b3801ef74db4269cc859408bf9d29a2 [diff] |
build-setup: Make ssc_dir as optional environment
ssc_dir was set to ${HOME} and could not be set by environment.
There is a need to split the ${ssc_dir} and ${HOME} to resolve an issue
related to git-proxy (see below TL;DR), so make it an optional
environment of this script.
TL;DR
When building behind a proxy or using proxy to speedup the downloads, it
is necessary to use git-proxy globally.
The git-proxy script itself is in the ${WORKSPACE}, and the .gitconfig
is in ${HOME}.
When building matrix jobs, say job-a and job-b
1. job-a will set .gitconfig to use git-proxy in it's own ${WORKSPACE}.
2. When job-b starts, it will set .gitconfig to use git-proxy in b's
${WORKSPACE}, which typically is a different dir.
So far it's OK, because the git-proxy's content is the same and both
files exists.
3. Say job-b finishes, and job-a is still building.
4. The queued job2 starts, and job2-b starts.
5. Now b's ${WORKSPACE} will be cleaned up, while job-a is still
using the git-proxy in b's ${WORKSPACE}, and job-a will fail with below
log:
fatal: cannot run
/path/to/job-b-workspace/.../bin/git-proxy: No such file or directory
The fix is to use separated ${HOME} for each job, so that the proxy will
not conflict anymore.
But the jobs could still share the downloads and sstate directories by
${ssc_dir}.
The the job setup will be:
* Set a shared directory between jobs for ${ssc_dir};
* Set different directories between jobs for ${HOME}.
Tested: Verify there is no above build error anymore.
Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: If07086a862c2a7854cc2571139895013951ad616
Build script for CI jobs in Jenkins.