Auto: 질문 - lerna 였λ₯˜! ENOGIT Gitlab CI λ‚΄μ—μ„œ λΆ„λ¦¬λœ git HEAD

에 λ§Œλ“  2020λ…„ 04μ›” 19일  Β·  28μ½”λ©˜νŠΈ  Β·  좜처: intuit/auto

버그 μ„€λͺ…

shipit을 μ‹€ν–‰ν•  λ•Œ lernaλŠ” λ§ˆμ§€λ§‰ 단계 μ—μ„œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

이것은 λͺ‡ 번 보고된 였λ₯˜λ₯Ό λ³΄μ•˜λ“―μ΄ lerna와 더 관련이 μžˆμ„ 수 μžˆμ§€λ§Œ lerna 호좜이 auto 내에 있기 λ•Œλ¬Έμ— μ œμ•ˆ 사항이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

νŽΈμ§‘ : λ‘œμ»¬μ—μ„œ ν…ŒμŠ€νŠΈν•˜λ©΄ λ‹€λ₯Έ 였λ₯˜κ°€ λ°˜ν™˜λ©λ‹ˆλ‹€. 그것에 λŒ€ν•΄ 더 μ•Œμ•„λ³΄κ³  후속 쑰치λ₯Ό μ·¨ν•˜λ €κ³  ν•©λ‹ˆλ‹€!

λͺ¨λ“  28 λŒ“κΈ€

ci ν™˜κ²½μ΄ μ•„λ‹Œ λ‘œμ»¬μ—μ„œ μ‹€ν–‰ν•  λ•Œ μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 흠

첫째, GitHub APIλ₯Ό 많이 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— autoκ°€ GitLabκ³Ό μ–Όλ§ˆλ‚˜ 잘 μž‘λ™ν•  수 μžˆλŠ”μ§€ IDK. pull μš”μ²­ 쑰회, 릴리슀 λ§Œλ“€κΈ° 및 기타 μ—¬λŸ¬ μž‘μ—…μ΄ μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


λΆ„λ¦¬λœ ν—€λ“œ 문제: λŒ€λΆ€λΆ„μ˜ CI ν™˜κ²½μ€ λ™μΌν•œ λ°©μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μ²΄ν¬μ•„μ›ƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. auto κ°€ μž‘λ™ν•˜λ €λ©΄ git repo에 λŒ€ν•œ 비ꡐ적 μ™„μ „ν•œ 보기가 ν•„μš”ν•©λ‹ˆλ‹€. λ§Žμ€ CI ν™˜κ²½μ€ ν˜„λͺ…ν•˜λ €κ³  λ…Έλ ₯ν•˜κ³  전체 계산을 ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μΌλΆ€λŠ” 얕은 볡제λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€(github μž‘μ—…). μΌλΆ€λŠ” λΆ„κΈ°λ₯Ό 미리 λ³‘ν•©ν•˜κ³  tmp λΆ„κΈ°(jenkins)λ₯Ό μ²΄ν¬μ•„μ›ƒν•©λ‹ˆλ‹€.

둜그λ₯Ό 보면 GitLab이 μƒλŒ€μ μœΌλ‘œ 전체 체크아웃을 μˆ˜ν–‰ν•˜μ§€λ§Œ ν—€λ“œκ°€ λΆ„λ¦¬λœ κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€(당신은 지점에 μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€). master 확인해 λ³΄μ„Έμš”.

# See what branches are available
git branch -a

# Checkout master
git checkout master

그것은 κ·Έ 였λ₯˜λ₯Ό μˆ˜μ •ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ˜€μ§€λ§Œ μ§€κΈˆμ€ λ‹€μŒμœΌλ‘œ 인해 ν•΄μ œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :cry:

λΉ λ₯Έ 검색을 μˆ˜ν–‰ν–ˆμ§€λ§Œ ν•΄λ‹Ή 였λ₯˜ λ©”μ‹œμ§€μ˜ 원인을 νŒŒμ•…ν•˜μ§€ λͺ»ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 였λ₯˜λŠ” auto

https://github.com/intuit/auto/blob/adf4e85590a75a9fd97945b4803f3535b8c45383/packages/core/src/auto.ts#L405

κ·Έλž˜λ„ λ‹€λ₯Έ 였λ₯˜λ₯Ό 삼킬 수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 경우 이 κΈ°λŠ₯μ—μ„œ 인쇄할 둜그λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

:facepalm: λ‚΄κ°€ 그것을 μ–΄λ–»κ²Œ λ†“μ³€λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ ν”Œλž˜κ·Έκ°€ μ„€μ •λœ 경우 ν•΄λ‹Ή 였λ₯˜λ₯Ό 좜λ ₯ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‘œμ»¬μ—μ„œ 였λ₯˜λ₯Ό 생성할 수 μ—†κΈ° λ•Œλ¬Έμ— λ‘œμ»¬μ—μ„œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μ—†λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

-silent ν”Œλž˜κ·Έκ°€ --silent μ—¬μ•Ό ν•©λ‹ˆκΉŒ? λ˜λŠ” --quiet ? false 및 -silent ν”Œλž˜κ·Έκ°€ 무엇인지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

https://gitlab.com/jdalrymple/gitbeaker/-/jobs/518962749#L1391

μ–΄λ¨Έ 🀦 - μ‚­μ œν–ˆμ–΄μ•Όμ§€

https://github.com/intuit/auto/pull/1160

이것이 κ²Œμ‹œλ˜λ©΄ 쒋은 https://github.com/intuit/auto/pull/1161/files μ—¬μ•Ό ν•©λ‹ˆλ‹€.

butttt κ³ μ • 또 λ‹€λ₯Έ 문제 λ„λ‹ˆλŠ” λ‹€λ₯΄κ²Œ λ‹€λ₯Έ μ œμ•ˆ?

당신은 μ—¬μ „νžˆ β€‹β€‹λ§ˆμ§€λ§‰ 릴리슀 버전이 μ•„λ‹Œ 였래된 μΉ΄λ‚˜λ¦¬μ•„ "auto" version: v9.28.2-canary.1160.15021.0 에 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μ•—! 방금 μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬μ „νžˆ 뢈운이 μžˆμŠ΅λ‹ˆλ‹€ :( 이제 였λ₯˜μ™€ ν•¨κ»˜: λͺ…λ Ή μ‹€νŒ¨: git merge-base --is-ancestor :cry:

흠 둜그λ₯Ό λ‹€μ‹œ 읽고 μžˆλŠ”λ° 잘λͺ»λœ 원격 URL을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

β„Ή info Using remote: https://gitlab-ci-token:[MASKED]@gitlab.com/jdalrymple/gitbeaker.git

그것이 μ‹€μ œλ‘œ λ¬Έμ œκ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. λ¦¬ν¬μ§€ν† λ¦¬λŠ” githubμ—μ„œ ν˜ΈμŠ€νŒ…λ˜μ§€λ§Œ νŒŒμ΄ν”„λΌμΈμ—λŠ” gitlab ciλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν‘Έμ‹œν•  리λͺ¨μ»¨μ„ μœ μΆ”ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ 잘λͺ» μœ μΆ”ν•©λ‹ˆλ‹€. μ–΄λ–»κ²Œ λ°”κΎΈλŠ”μ§€ 잘 λͺ¨λ₯΄κ² μ§€λ§Œ 흠

κ·Έλž˜μ„œ 원격 URL을 λͺ…μ‹œμ μœΌλ‘œ μ„€μ •ν•˜μ—¬ 이 였λ₯˜λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μΌμ’…μ˜ ν•΄ν‚Ήμ΄μ§€λ§Œ μ§€κΈˆμ€ μž‘λ™ν•©λ‹ˆλ‹€. μ΄μƒν•œ npm 였λ₯˜λ₯Ό μ§€κΈˆ μˆ˜μ •ν•˜λ €κ³  ν•©λ‹ˆλ‹€. λ„ˆλ¬΄ κ°€κΉŒμ΄ :/

νš¨κ³Όκ°€ μžˆμ—ˆλ‹€!!! λͺ…μ‹œμ μœΌλ‘œ λͺ‡ 가지λ₯Ό μ„€μ •ν•΄μ•Ό ν–ˆμ§€λ§Œ 예! 도와 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!!

μƒˆλ‘œμš΄ λ¬Έμ œκ°€ 열리지 μ•Šλ„λ‘ λΉ λ₯Έ 질문 @hipstersmoothie . μƒˆλ‘œμš΄ github 릴리슀 생성을 μžλ™μœΌλ‘œ μ²˜λ¦¬ν•©λ‹ˆκΉŒ? νƒœκ·Έμ™€ 릴리슀 λ…ΈνŠΈλ₯Ό 잘 λ§Œλ“€μ—ˆμ§€λ§Œ github λ¦΄λ¦¬μŠ€λŠ” μ—†μ—ˆμŠ΅λ‹ˆλ‹€.(

github λ¦΄λ¦¬μŠ€λ„ 생성해야 ν•©λ‹ˆλ‹€. μ˜¬λ €μ£Όμ‹  λ‚΄μš©μ„ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 더 λΉ λ₯Έ 닡변을 μ›ν•˜μ‹œλ©΄ νŠΈμœ„ν„° dm도 κ°€λŠ₯ν•©λ‹ˆλ‹€

GitLab을 기반으둜 κ΅¬μΆ•ν•˜λŠ” 것이 μ΄λŸ¬ν•œ 문제의 λŒ€λΆ€λΆ„μ˜ 원인일 κ²ƒμž…λ‹ˆλ‹€. 원격 CI μ„œλΉ„μŠ€μ—μ„œ μ•Œ 수 μžˆλ“―μ΄ λ‹€μ–‘ν•œ 가정을 ν•˜λŠ” κ²½ν–₯이 μžˆμŠ΅λ‹ˆλ‹€.

즉, 원격 λ‘œμ§μ„ κ°œμ„ ν•˜κ³  gitlab CI에 μžˆμ„ λ•Œ 감지할 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λ‹€μŒμ€ 원격 https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L556 을 νŒŒμ•…ν•˜κΈ° μœ„ν•΄ μ½”λ“œλ₯Ό λ³€κ²½ν•˜λŠ” μœ„μΉ˜μž…λ‹ˆλ‹€.

github λ¦΄λ¦¬μŠ€λ„ 생성해야 ν•©λ‹ˆλ‹€. μ˜¬λ €μ£Όμ‹  λ‚΄μš©μ„ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 더 λΉ λ₯Έ 닡변을 μ›ν•˜μ‹œλ©΄ νŠΈμœ„ν„° dm도 κ°€λŠ₯ν•©λ‹ˆλ‹€

μ•½ 10λΆ„ 후에 λ‹€λ₯Έ 릴리슀λ₯Ό λ§Œλ“€μ–΄ κ²°κ³Όλ₯Ό 확인할 수 μžˆμ§€λ§Œ λ§ˆμ§€λ§‰ λ¦΄λ¦¬μŠ€μ—μ„œλŠ” github 릴리슀 λ…ΈνŠΈλ₯Ό μˆ˜λ™μœΌλ‘œ μΆ”κ°€ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

output_limit https://docs.gitlab.com/runner/configuration/advanced-configuration.html을 μ˜¬λ €μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μ§€κΈˆ κ·Έ ν•œλ„λ₯Ό μˆ˜μ •ν•˜λŠ” 방법을 μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€. git log AHλ₯Ό μ–»μœΌλ €κ³  ν•  λ•Œ 였λ₯˜κ°€ λ‚˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 접두사가 'v'인 νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ§€λ§Œ λ‚΄ lerna κ΅¬μ„±μ—μ„œ 접두사λ₯Ό μ œμ™Έν•©λ‹ˆκΉŒ?

β„Ή  info      Using 17.0.3 as previous release.
β„Ή  info      Current "Latest Release" on Github: v17.0.3
β„Ή  info      Getting commits from v17.0.3 to HEAD

νƒœκ·Έμ—μ„œ ν—€λ“œλ‘œ 컀밋을 μ°Ύμ•„μ•Ό ν•˜λŠ” 것 μ•„λ‹Œκ°€μš”? 이 경우 17.0.3μ—μ„œ HEAD둜?

auto의 기본값은 v 접두사이기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 방금 lerna ꡬ성을 μžλ™μœΌλ‘œ μ‘΄μ€‘ν•˜λŠ” PR을 μ—΄μ—ˆμŠ΅λ‹ˆλ‹€.

https://github.com/intuit/auto/pull/1170

μžλ™ κ΅¬μ„±μ—μ„œ noVersionPrefix λ₯Ό μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‚˜λŠ” 이것을 μžλ™ν™”ν•˜λŠ” 것이 더 λ‚«λ‹€κ³  μƒκ°ν•œλ‹€.

μžλ™ κ΅¬μ„±μ—μ„œ noVersionPrefix λ₯Ό μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‚˜λŠ” 이것을 μžλ™ν™”ν•˜λŠ” 것이 더 λ‚«λ‹€κ³  μƒκ°ν•œλ‹€.

κ·Έ ꡬ성을 μ •μ˜ν•˜λŠ” 더 쒋은 방법이 λ κΉŒμš”? μ•„λ§ˆ 응?

λ¬Έμ œλŠ” lerna ꡬ성도 μ„€μ •ν•΄μ•Όν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

https://github.com/intuit/auto/pull/1170

λ‚˜λŠ” μžλ™μœΌλ‘œ λ§Œλ“€μ—ˆμœΌλ―€λ‘œ μžλ™μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•΄μ•Όν•©λ‹ˆλ‹€.

v 접두사가 없도둝 λ§ˆμ§€λ§‰ νƒœκ·Έ/릴리슀λ₯Ό νŽΈμ§‘ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

ν™•μΈν•˜κ² μŠ΅λ‹ˆλ‹€! 감사 ν•΄μš”!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰