반응형
매번 bugfix와 새로운 feature 개발할 때, manifest 파일을 만들어서 빌드를 해야하는 번거로움이 있었다.
이를 위해 manifest를 자동으로 생성하는 jenkins job을 만들게 되어 기록해본다.
즉 manifest에서 작업한 repository에 해당하는 라인 뒤에 revision 값을 추가해야 한다.
필요한 매개변수
- Base branch : 생성할 manifest의 base 브랜치
- Working repositories : 작업한 repository 리스트 (공백으로 받음, 젠킨스에 공백으로 구분할 수 있는 기능이 있음)
- New branch : 새로 생성 할 브랜치. 즉 working branch에서 작업한 branch명
<Shell Script>
# Build with Parameters
# BASE_BRANCH : base branch from modifying
# WORKING_REPOSITORY : repository name to work on
# NEW_BRANCH : new branch name to be created
rm -rf manifest
git clone -b $BASE_BRANCH
cp ModifyRevision.py manifest
cd manifest
for repo in ${WORKING_REPOSITORY}; do
file_to_modify = `grep -r '"'$repo'"' --exclude="./IDE.xml" ./* | cut -d ':' -f1 | cut -d "/" -f2`
python ModifyRevision.py $file_to_modify $repo $NEW_BRANCH
done
rm ModifyRevision.py
git checkout -b $NEW_BRANCH
git add .
git commit -m "$NEW_BRANCH : Create a manifest file"
git push origin $NEW_BRANCH
<Python Script>
import sys
with open(sys.argv[1], 'r') as file:
filedata = file.readlines()
new_filedata = ''
for line in filedata:
working_repo = '"' + sys.argv[2] + '"'
if working_repo in line :
splited_line = line.split('/>')[0]
line = splited_line + ' revision="' + sys.argv[3] + '"/>\n'
new_filedata += line
with open(sys.argv[1], 'w') as file:
file.write(new_filedata)
반응형
'Programming' 카테고리의 다른 글
VSCODE 주석 단축키 안 먹힘 (0) | 2022.10.10 |
---|---|
HTML 태그 요약2 (0) | 2020.11.29 |
HTML 태그 요약 (0) | 2020.11.29 |
개발할때 수정한 함수명 추출 (Git diff) (0) | 2018.06.26 |