CS

jenkins 에서 작업한 파일을 github 연동하기

sapziling 2022. 6. 28. 18:46

1. [jenkins build 설정 > Execute Shell] jenkins에서 작업한 파일을 venv에서 실행하면, jenkins의 workspace에 저장된다.

 

$ source {MY_VENV_DIR}/bin/activate
$ pip3 list
$ python3 {MY_PYTHON_FILE}.py {MY_JENKINS_WORKSPACE_DIR}/{MY_GIT_DIR}

2. [jenkins docker] jenkins가 있는 docker에서 git push 해준다.

$ git branch {MY_NEW_BRANCH}
$ git checkout {MY_NEW_BRANCH}
$ git branch
$ git add {MY_JENKINS_WORKSPACE_DIR}/{MY_GIT_DIR}
$ git commit -m "github test"

2.5 fetch 하기전 master branch pull 해서 우선 master branch 변동사항 반영해주면 좋음

 

3. [local repo] 기존에 사용하고 있던 (서버의) 로컬 디렉토리에서 local repo의 master branch와 remote repo의 {MY_NEW_BRANCH} fetch후 merge한다. // 혹은 깃 remote repository에서 merge pull request한다면, 4번에서도 push 대신 pull 하여 로컬에 가져오면 된다.

$ git fetch {MY_REMOTE_REPO} {MY_NEW_BRANCH}
From ~
 * branch            {MY_NEW_BRANCH}   -> FETCH_HEAD
$ git branch -- 로컬에서는 마스터 브랜치만 존재.
* master
$ git checkout FETCH_HEAD -- 로컬에서 fetch한 내용 확인하고 싶다면
$ git branch
* (detached from FETCH_HEAD)
  master
$ git checkout master -- 마스터 브랜치로 다시 이동
Switched to branch 'master'
$ git branch
* master
$ git merge {MY_REMOTE_REPO}/{MY_NEW_BRANCH} -- 이건 하면 안됨.
fatal: {MY_REMOTE_REPO}/{MY_NEW_BRANCH} - not something we can merge
$ git merge FETCH_HEAD
Merge made by the 'recursive' strategy.
 ...

 

 

 

4. [local repo]  3번의 merge된 사항을 local repo의 master branch를 remote repo의 master branch에 push 한다.

$ git branch
* master
$ git pull {MY_REMOTE_REPO} master -- 이건 할 필요없긴 한데 한번 체크용.
From ~
 * branch            master     -> FETCH_HEAD
Already up-to-date.
$ git add {MY_PUSH_DIR}
$ git commit -m "data update" 
nothing added to commit but untracked files present (use "git add" to track)
$ git push {MY_REMOTE_REPO} master
Counting objects: 1, done.
Writing objects: 100% (1/1), 258 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
$ git branch -d {MY_NEW_BRANCH} -- 얘는 remote repo라 굳이 삭제할 필요없음
error: branch '{MY_NEW_BRANCH}' not found.

 

 

 

 

 

 

Reference

 

https://stackoverflow.com/questions/21651185/git-merge-a-remote-branch-locally