# Jenkins CI / CD Cheatsheet
- Q: Remote repository reference를 찾지 못하는 오류
```
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
```
A: git push azure HEAD:refs/heads/master로 한번 push를 해주면 reference가 생성된다
- Q: Dotnet library 오류
```
remote: Could not execute because the specified command or file was not found.
remote:
remote: Possible reasons for this include:
remote:
remote: * You misspelled a built-in dotnet command.
remote:
remote: * You intended to execute a .NET Core program, but dotnet-/opt/Kudu/KuduConsole/kudu does not exist.
remote:
remote: * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
```
A: 현재로써는 azure app service를 다시 만드는 방법 밖에 찾지 못했다.;;;
- Q: Azure Token 만료

```
ssh jenkins@sopdevcidjkn.koreacentral.cloudapp.azure.com 접속
az login 으로 토큰 재발급
```
- Q: DOSS/TDE Authentication Failed
```
stderr: fatal: Authentication failed for 'https://doss.sktelecom.com/bitbucket/scm/hubnspoke/has-office-back.git/'
```
doss쪽에서 auth 오류가 나면 personal access token이 만료된 것이다.
먼저 doss에서 토큰 재발급 후 jenkins 서버에 ssh로 접속한다.
```
ssh sopdevcidjkn.koreacentral.cloudapp.azure.com
jenkins / 비번은 코난에게 문의
```
에러난 디렉토리로 이동해서 토큰을 재설정해 주어야 하는데 에러난 디렉토리를 찾는 방법은 jenkins 빌드 모니터링으로 가서

workspace 디렉토리 위치를 확인하면 된다.
위 경로로 이동해서 git pull을 하면 신규 username과 password를 물어볼텐데
이곳에 사번과 위에서 발급받은 토큰값을 넣으면 된다.
- Q: RPC 400 에러
```
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 Bad Request
```
git push로 보내려는 데이터 사이즈가 커서 나는 오류다.
버퍼 사이즈를 조절해주면 된다.
```
git config http.postBuffer 1048576000
```
혹은 Azure local git을 해제했다가 다시 생성
- Q: yarn관련 rxjs 에러
```
error Couldn't find a package.json file in "/home/.cache/yarn/v6/npm-rxjs-6.6.3-8ca84635c4daa900c0d3967a6ee7ac60271ee552-integrity/node_modules/rxjs"
```
프로젝트에서 yarn을 실행해서 yarn.lock파일을 생성해주면 된다.
- Q: npm을 사용하는데 yarn dependency installation 문제
```
info There appears to be trouble with your network connection...
```
yarn.lock 삭제후 package.json에 engine을 정의한다
```
"engine": {
"npm": "6.14.4"
},
"engineStrict": true
```
- Q: 그 밖 Node/Vue 기반 앱서비스 oryx배포 시 발생하는 문제 해결 책

- Q: Out of Memory
```
git repack -adf
git gc --aggressive --prune=now
```