๋ด๊ฐ ์ ์ ์ต์ํด์ง๊ณ ์๋ ๊ฒ์ฒ๋ผ w/ it ....
๊ธฐ์กด Free Starter ์๊ธ์ ๋ฐ Android ์ฑ ๊ฐ๋ฐ์ 2018๋ 3์ 1์ผ์ ์ค๋จ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ์ ๋ํ ์ง์์ ๊ฑฐ์ ํ์คํ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ์๋ก์ด CI๋ฅผ ์ฐพ์์ผ ํ ๋์ ๋๋ค. ์ด๋ค ์ ์?
๋ค์์ ์ ๊ณตํ๋ ์ด ๊ธฐ์ฌ ๋ฅผ ์ฝ๊ณ ์์ต๋๋ค.
Hacker News์์ Buildkite ๋ฐ AppCenter ์ ๋ํด ์ฝ์์ต๋๋ค.
๋ํ ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๋ค์ ๋ฐ์ํ์ง ์๋๋ก ์คํ ์์ค, ์์ฒด ํธ์คํ ์๋ฃจ์ ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
๋ค๋ฅธ ์์ฒด ํธ์คํ ์ต์ ์ ๊ฒฝ์ฐ TeamCity(https://www.jetbrains.com/teamcity)?
์ผ๋ฐ์ ์ผ๋ก ์คํ ์์ค ํ๋ก์ ํธ์ CircleCI ์์ ๋๊ธฐ์ด์ TravisCI๋ณด๋ค ํจ์ฌ ๋ ํผ์กํฉ๋๋ค.
RxSwiftCommunity ์ ์ฅ์ ์ค ์ผ๋ถ๋ฅผ ๊ด๋ฆฌํ์ฌ 0.02๋ฌ๋ฌ๋ฅผ ๋ฐ์์ต๋๋ค.
Travis๋ ์ ๋ ์ฐ๋ ๊ธฐ์
๋๋ค(๋๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ).
ํ์์ ์ฐธ์ ์ ์๊ณ ๊ฐ๋ฐ ๋
ธ๋ ฅ์ ๋๋ฆฌ๊ฒ ํ๋ฉฐ(90๋
๋ ๋น๋๋ฅผ ์ํด 50๋ถ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์ฉ๋ฉํ ์ ์์) ๊ตฌ์ฑ์ด ์๋์ ์ผ๋ก ์ฑ๊ฐ์ญ๋๋ค.
์ฐ๋ฆฌ๋ ๋๋ฆฌ์ง๋ง ํ์คํ๊ฒ ๋๋ถ๋ถ์ ์ ์ฅ์๋ฅผ CirlceCI๋ก ์ฎ๊ธฐ๊ณ ์์ผ๋ฉฐ ๋งค์ฐ ๋ง์กฑํ๊ณ ์์ต๋๋ค. ๋๊ธฐ์ด์ ์ ๋ง ๋น ๋ฅด๊ณ ๊ณต์ ํ๋ฉฐ ๊ตฌ์ฑ์ ๋น๊ต์ ๊ฐ๋จํฉ๋๋ค.
๊ทธ๋ฐ ์๋ฏธ์์ Bitrise์ ๋ํ ์ข์ ์์๋ ๋ค์์ต๋๋ค.
BB์ ๋ํ ์์ฒญ๋ ์์น์ฌ, Apple์ด ๊ทธ๊ฒ์ ์ฃฝ์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฏ๋ก ๊ณ์ ์ฃผ์ํ๋ ๊ฒ์ด ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
์ด์ ๋ฒ์ ์ Jenkins์ ๋ํ ๊ฒฝํ์ด ์๋ ๋๊ตฌ๋ก์ ํ์คํ ๊ฐ๋ฅํ์ง๋ง ์ ์ง ๊ด๋ฆฌ/๊ตฌ์ฑ์ด ์๋นํ ๋ง์ด ํ์ํ๋ฉฐ ๊ฐ๋ฐฉ์ ์ด๊ณ ํ์ ์ ์ธ ์ํ๋ก ์ ์งํ๋ ๊ธฐ์ ์์ ์ ์งํ๊ฒ ๊ฐ์ฅ ์ข์ ๊ฒ์ ์๋ ๊ฒ์ ๋๋ค.
๋ํ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ "ํฐ" ์ ๊ณต์ ์ฒด์ ๊ฐ๋ค๋ฉด ๋ชจ๋ ธํด๋ฆฌ๋ฅผ ํ๋ ์ดํ๋ ๋ค๋ฅธ ํ์ฌ์ ์ํด ํฉ์ธ๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ์ ์ํ์ ๊ฐ์ํด์ผ ํฉ๋๋ค.
๋ด 2์ผํธ์ธ Bitrise๋ฅผ ์ฌ์ฉํด ๋ณด๊ณ ์ถ์ต๋๋ค.
๋๋ ๋ถ๋ช
ํ ํธํฅ๋์ด ์์ต๋๋ค ;) ๊ทธ๋ฌ๋ ์ด์ ๊ฐ์ ์ผ์ App Center์์ ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค.
๊ด์ฌ์ด ์์ผ์๋ฉด ์ฐ๋ฝ์ฃผ์ธ์.
cc @ํ๋ ์์ค
GitHawk ์ ํจ๊ป
Https://Buildozer.io ๋ iOS์ Android๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค. (๊ณต๊ฐ: ๋๋ ์ค๋ฆฝ์ ์ค ํ ๋ช ์ ๋๋ค)
์ฐ๋ฆฌ๋ CI์ฉ Mac์ด ํ์ํ ๋ชจ๋ Artsy iOS ํ๋ก์ ํธ์์ CircleCI๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. OSS ๋๊ธฐ์ด์ travis์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ต๋๋ค.
๋๋ ํ๋ฃจ ์ข
์ผ Bitrise์ App Center๋ฅผ ์ฌ์ฉํด ๋ณด์์ต๋๋ค. ์ง๊ธ๊น์ง๋ BuddyBuild์ฒ๋ผ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๋ง๋ฒ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค...
๋๋ BB ํ์ ๋ง์กฑํ์ง๋ง(๋ฐด์ฟ ๋ฒ์ ์๊ธฐ ๋๋ฌธ์ ์๋์ค๋ฝ๊ธฐ๋ ํจ) ์ฌ์ฉ์๋ก์ ๋งค์ฐ ํ๊ฐ ๋ฉ๋๋ค...
BuddyBuild๋ ๊ตฌ์ฑ์ด ๊ฑฐ์ ํ์ ์์ด ๋ฐ๋ก ์๋ํ๋ ์๋น์ค ์ค ํ๋์์ต๋๋ค.
Buddybuild๊ฐ ์๋ํ๋ ๋ฐฉ์์ด ์ ๋ง ๋ง์์ ๋ค์์ต๋๋ค. ์ด์ ์ Circle CI์ ์ง์ณค์ง๋ง ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ด ๋ช ๊ฐ์ง ์์ต๋๋ค. Fastlane์ ์ฌ์ฉํ์ฌ ์๋ช ํ๊ณ Test Flight์ ๋ฐฐํฌํ๊ณ ์๋ ์๋ช ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. "์๋"์ ์ฌ์ฉํด์ผ ํฉ๋๋ค
@TroubleMakerBen ๊ณผ ์ฑํ ํ ์๊ฐ์ ์ค์ ํ์ต๋๋ค. AppCenter _looks_ ์ ๋ง ๋ฉ์ง๋๋ค. ๊ทธ๊ฒ์ ๋ํด ์์ธํ ์์๋ณด๊ณ ๋ค์ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค!
https://buildkite.com/ ์ ํ์ธ
์ฌ๊ธฐ bitrise์ ์ด๋ ฌํ ํฌ. ์ฐ๋ฆฌ ์๋ฃจ์ https://www.appaloosa-store.com/ ์์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
@sregg App Center์์ ์ ํํ ๋ฌด์์ด ๋น์ ์ ์ํด ์๋ํ์ง ์์์ต๋๊น? ํน์ ๋น๋์ ๋ํด ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.
์ ๋ฅผ ๋ค์ด
์ ๋ Microsoft์์ App Center Build๋ฅผ ๋ด๋นํ๋ ์์ง๋์ด๋ง ๊ด๋ฆฌ์์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋งค์ฃผ ๊ฐ์ ํ๋ ํ๋ฅญํ ํ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ๋ค์ค ํ๋ซํผ ์ง์์ ์ํด ์ต์ ์ ๋คํ๊ณ ์์ต๋๋ค.
@regg ํ๋ฅญํ ํผ๋๋ฐฑ์ด ์๊ณ ์ด๋ฌํ ๋ชจ๋ ์์ญ์ ๊ฐ์ ์ด ๋ฐฑ๋ก๊ทธ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ํ ๋ฌธ์ /์ฐ๋ ค/ํผ๋๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ Twitter( https://twitter.com/0xlukekim) ์์ ์ธ์ ๋ ์ง DM์ ๋ณด๋ด์ฃผ์ธ์.
์ ๋ ์ฃผ๋ก "๋ฉํ"๋ผ๋ ์๋ฏธ์์ App Center์ ๊น์ ์ธ์์ ๋ฐ์์ต๋๋ค.
๊ฒฝํ์ด ๋ง์ง๋ ์์ง๋ง ์ถฉ๋ถํ ๊ฒฝ์๋ ฅ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. :)
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ ๋ https://www.bitrise.io (CTO ๋ฐ ๊ณต๋ ์ค๋ฆฝ์)์ Viktor์ ๋๋ค.
์ถ์ฒํด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ํฌ ํ์ ํฐ ์๋ฏธ ๊ฐ ์์ต๋๋ค !
๊ทธ๋ฅ ์๋ ๐ ์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์๊ณ ์ฐ๋ฆฌ๊ฐ ๋น์ฐํ ๋ฃ๊ณ ์๋ค๋ ๊ฒ์ ํ์ธํ๊ณ ์ง์ ์ฑ๋์ ํตํด ์ธ์ ๋ ์ง ํ์ ๋ณด๋ด์ฃผ์ธ์. ์ฌ๊ธฐ์์ ์ง๋ฌธ์ ๋ต๋ณํด ๋๋ฆฌ๊ฒ ์ต๋๋ค!
ํํ, ์ด์ ์ ์ฐฐ ์ ์์ ์์ํ ์ ์์ ๊ฒ ๊ฐ์์ ๐
๋ด GitHawk๋ ๋ชจ๋ CI๋ฅผ ๋ง๋น์ผ๋ก ๊ฐ์ ธ์ต๋๋ค ๐ค
์ ๋ BuddyBuild์์ Bitrise๋ก ์ฎ๊ฒผ์ต๋๋ค(์ฐ๋ฆฌ๋ iOS์ Android๋ฅผ ์ํ ํ ๊ณณ์ ์ ๋ง๋ก ์ํฉ๋๋ค). ๋ฌธ์์ ๋จ๊ณ์ git repos ์ผ๋ถ๋ฅผ ์ฝ๋ ๋ฐ ์ฝ๊ฐ์ ์๊ฐ์ด ๊ฑธ๋ ธ์ง๋ง ๋ค๋ฅธ ์์ ์ ์ํํ๋ ๋ฐ ํ๋ฃจ ์ ๋ ๊ฑธ๋ ธ๊ณ ๊ฝค ์์กฐ๋กญ๊ฒ ์งํ๋์์ต๋๋ค.
@sregg "Adjust BuildNumber" ๋จ๊ณ๋ฅผ versionCode
ํ๊ณ BB์์ ์๋ ๋ฐฐํฌํ๊ธฐ ๋๋ฌธ์ += 640์ผ๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ธ๊ธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
BuddyBuild๋ฅผ ํตํ Bitrise์์ ๋ฐ๊ฒฌํ ์ฃผ์ ์ฐจ์ด์ (BB์์ GUI ๊ธฐ๋ฐ์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ ์ธํ๊ณ )์ Gradle ๋น๋๋ฅผ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋๋ ๊ฒ์ ๋๋ค. BuddyBuild๋ (๋ ํจ์จ์ ์ผ ์ ์์) ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ๋ชจ๋ ๊ฒ์ ๊ตฌ์ถํ ๋ค์ ๋ฐฐํฌ ์ด๋ฉ์ผ ๋๋ Play ์คํ ์ด์ ๊ฒ์์ ๊ฐ์ ๊ด๋ จ ํญ๋ชฉ์ ๊ฐ์ ธ์ต๋๋ค. Bitrise๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ ํ ์ฌํญ์ด ์์ต๋๋ค. 1. ๋ถํ ์ฌ๋ฌ ๋น๋/Gradle ๋จ๊ณ(์: UI/Android ํ ์คํธ์ฉ), ํ ์คํธ ๋น๋์ฉ[2x3=6 ๋ณํ], App/Play ์คํ ์ด ๋ฐฐํฌ ์ํฐํฉํธ์ฉ ํ๋, ๊ทธ ์ฌ์ด์ ์ผ๋ถ ์ ๋ฆฌ ๋จ๊ณ ํฌํจ(์: ํํฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ณณ์์ ์ด๋ฉ์ผ์ด ๋๊ฐ๋ ๊ฒ์ ๋ฐฉ์ง)... ๋๋ 2. bash ์คํฌ๋ฆฝํธ์ ์ต์ํ๊ณ ํ์ดํ ๋งต ENV ๋ณ์๋ฅผ ๋ถํ ํ๋ ์คํฌ๋ฆฝํธ ๋จ๊ณ๊ฐ ์์ด ์ดํ ๋จ๊ณ์์ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด BB๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด๋ธ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ํฌํจํ๋๋ก ์ฌ์ ๋ฉ์์ง๋ฅผ ์ค์ ํ๋ ๋ ๋ง์ ์์ ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์ ์ ์ํ ์ ์์ผ๋ฉด ์ข์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ ์์ฑ์ผ๋ก ๋์๊ฐ๊ณ ์ถ์ต๋๋ค.
๋ค๋ฅธ ํ๋๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ์ง ์๋ ๊ธฐ๋ฅ, ํ ์คํฐ ๊ด๋ฆฌ(Play Store Alpha ๋ฐ TestFlight ์ฌ์ฉ), ์ถฉ๋/์ถฉ๋ ๋ก๊ฑฐ์ฉ ํ๋ค๋ฆผ(Firebase ์ ํธ)์ ๋๋ค.
์ ๋ง ๋ฉ์ง ๊ธฐ๋ฅ ์ค ํ๋๋ ์ํฌํ๋ก๋ฅผ .yml ํ์ผ๋ก ๋ณด๊ณ ํธ์งํ ์ ์์ ๋ฟ๋ง ์๋๋ผ CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ๋ค์ด๋ก๋ํ๊ณ ์คํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์์งํ ์์ ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์์ ์ด ํ์ํฉ๋๋ค. ๊ทธ๊ฒ ์์ธ๋ฅผ ๋ด๋ ์์ ์ด์ฃ ? ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฑฐ์ ์ผํ์ฑ์ด๋ฉฐ ๋ณด๋์ค๋ ์ถ๊ฐ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅ์ฑ์ ๋๋ค. ์ ๋ฐ์ ์ผ๋ก ๋งค์ฐ ํ๋ฅญํ๊ณ ์ข์ ๊ฐ๊ฒฉ์ ์์ ์ ์ํํ๊ณ ์์ต๋๋ค. ์ด ์ค์์น์ ๋ง์กฑํฉ๋๋ค. CircleCI๋ ํ๋ฅญํ๋ค๊ณ ํ์ ํฉ๋๋ค(์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋ฐฑ์๋์ ์ฌ์ฉํฉ๋๋ค).
Bitrise์ ์ ์ฒด ์ธํ๋ผ๋ OSS์ ๋๋ค. https://github.com/bitrise-io/bitrise.io
ํผ๋๋ฐฑ์ ๋ณด๋ด ์ฃผ์ @richardleggett ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด ํ๊ณผ ๋ ผ์ํ๊ฒ ์ต๋๋ค!
ํนํ Slack ํ๋ - ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋น ์ง ์งํ "๊ฟ" ๋ฉ์์ง๋ฅผ ์์ฑํ๋๋ก ์๊ตฌํ๋ ๋์ "๋ ๋ฉ์ง"(๋ ์ ์ฉํ) ๊ธฐ๋ณธ ๋ฉ์์ง๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ด์ ๋๋ฌด ๋ฆ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ฐ์ฑ๋ ์ค์ํ์ง๋ง ๊ธฐ๋ณธ๊ฐ/์ค์ ๊ฒฝํ(๋ฐ ์๋)๋ ์ค์ํฉ๋๋ค. ์ด์จ๋ ๊ทธ ํ์ ๋ฉ์์ง๋ฅผ ์กฐ์ ํ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ์ ๋ ์ฅํฉํ๊ฒ ๋ง๋๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Gradle: ํด๋ง ํ๊ณผ๋ ๋ ผ์ํ ์์ ์ ๋๋ค. ๊ฐ์กฐํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋๋ ์ด๊ฒ์ ๋ํด ๊นกํต์ ์ฐจ๊ณ ์์ต๋๋ค(์ฒ์ฒํ ๋ด ๋ถ์์ ์ฆ๊ฐ์ํด). ๋ ๋ง์ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ๋์์ ํ์ํ๋ ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ ๋งํฌํ๊ณ ์ถ์์ต๋๋ค.
๋๋ ์ด ํ๋ก์ ํธ๋ฅผ ์๋ํํ๊ธฐ ์ํ ๋์ "๋ถ์ชฝ ๋ณ" ๋น์ ์ ๋ํด ๋ ผ์ํ๊ธฐ ์ํด @orta ๋ฐ ํจ๊ป ์๊ฐ์ ๋ณด๋ด๊ณ ์ถ์ต๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ ๋ํด ์์ ํ๊ธฐ ์ํด ์๋์ง๋ฅผ ์์งํ๋ฉด ๋ค์ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
์ด @rnystrom์ ๋ํ ์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ ๋น์ ์ ๋๋๋ค. ๐
@rnystrom ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ฐ์ฌํ๊ณ https://blog.bitrise.io/ios-auto-provision-step
์ด์จ๋ , bitrise๋ฅผ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ bitrise๋ฅผ ๋ค์ ์๋ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํญ์ ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค. Slack(http://chat.bitrise.io)๊ณผ ๊ฐ์ ๊ณณ์์ ์ธ์ ๋ ์ง ์ ์๊ฒ ํ์ ๋ณด๋ด์ฃผ์ญ์์ค.
@viktorbenei ๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋ ๊ฒ์ Ryan์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์๋๋๋ค!
์, ๋ง์์ฌ, ์ฌ๊ธฐ๋ ์์ง ์ด๋ฅธ ์์นจ์ด์ผ ๐ ๋ฏธ์ํ๊ณ ๊ณ ๋ง์ @Sherlouk !
์ค์ ๋ก ์ด์ ๋ฐค Bitrise ์์ ์ ์์ํ์ต๋๋ค. ๋ค์๋ณด๊ณ ํฉ๋๋ค!
GitHawk ์ ํจ๊ป
Bitrise ๋น๋๋ ๋ น์์ ๋๋ค! BB๋งํผ ์ค์ ์ด ์ฝ์ต๋๋ค. ์น์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
GitHawk ์ ํจ๊ป
@rnystrom ์ ๋ฃ๊ฒ ๋์ด
์ค์ ๋ก ์ด๊ธฐ ์ค์ ์ BB์ ์ ์ฌํ๊ฒ ๋งค์ฐ ์ํํด์ผ ํฉ๋๋ค. ์ฃผ์ ์ฐจ์ด์ ์ ๊ทธ ์ดํ์ ๊ตฌ์ฑ UI์ ๋๋ค. BB์ ์ ๊ทผ ๋ฐฉ์์ ์ํ๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ค์ ๋ชจ๋ ์ธก๋ฉด์ ์ง์ ํ ์ ์๋๋ก ์ ์ฐ์ฑ์ ์ฃผ๋ก ์ด์ ์ ๋ง์ถ๋ฉด์ ํน์ ์ฌํญ์ด ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์์ ์๋ฏธํ๋ ๊ฐ๋จํ UI๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด์์ต๋๋ค(๊ทธ๋ฌ๋ ์ด๊ฒ์ ํน์ ๋ณต์ก์ฑ ๋ฐ ๊ฐํ๋ฅธ ํ์ต ๊ณก์ ). ์ฐ๋ฆฌ๋ ์ด ํ์ต ๊ณก์ ์ด ํนํ ์ทจ๋ฏธ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๋๋ฌด ๋ง์ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๋ฐฐํฌ ๋ฑ ๊ตฌ์ฑ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ฌํด ๊ณํ๋ ๋ช ๊ฐ์ง ์ฌํญ ;)
https://appcenter.ms๊ฐ ์ ๋งํด ๋ณด์ ๋๋ค.
ํฌ๋ช ์ฑ์ ์ด๋ฆ์ผ๋ก ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ณณ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Bitrise์ App Center CI ๋ชจ๋ GitHawk๋ฅผ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค. ๋ ์๋น์ค ๋ชจ๋ ์ฌ์ฉํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ๊ธฐ ๋๋ฌธ์ ๋ ์๋น์ค๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฒ ํ ๋น๋์ ๋จ์ผ App Store ๋น๋๋ฅผ ์ ๊ณตํ๊ณ ๋ด ํ๋ก์ธ์ค๋ฅผ ๋ฌธ์ํํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ ๋ด ์ด๊ธฐ ์๊ฐ์ด ์์ต๋๋ค
master
์์ ์๋์ผ๋ก ๋น๋๋ฅผ ITC๋ก ํธ์ํฉ๋๋ค(๋๋ ์ด๊ฒ์ _์ข์ํฉ๋๋ค_).@rnystrom ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ํ ๊ฐ์ง๋ง ์์ ํ๋ฉด bitrise์ ์น ์๋น์ค ๊ตฌ์ฑ ์์๋ ์คํ ์์ค๊ฐ ์๋๋ฏ๋ก API ๋ฐ ์น UI๋ฅผ ์์ฒด ํธ์คํ ํ ์ ์์ต๋๋ค(์์ง ;)). ๊ตฌ์ฑ์ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ชจ๋ ๋๊ตฌ(์ํฌํ๋ก ํธ์ง๊ธฐ, ๋ฌ๋ CLI ๋ฑ)๋ ์คํ ์์ค์ด๋ฏ๋ก ๋น๋ ๊ตฌ์ฑ์ ๋ค์ด๋ก๋ํ์ฌ ์์ ์ Mac(๋๋ ๋ชจ๋ Mac/Linux)์์ ์คํํ ์ ์์ต๋๋ค. ๋น ๋ฅธ ์ฐจ์ .
๋น๊ต๋ฅผ ์ํด ์ง๋ฌธ ํ๋๋ง
Bitrise: ๋จ์ : ์คํ ์์ค ๋ฌด๋ฃ ๊ณํ ์์(์์ง)
AppCenter์ ์คํ ์์ค ๊ณํ์ด ์์ต๋๊น? ๊ทธ๊ฒ์ ๋์ณค์ ์๋ ์์ต๋๋ค. AFAIK ๊ทธ๋ค๋ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. appcenter์ ์น ์ฌ์ดํธ์์ ๊ด๋ จ ํญ๋ชฉ์ ์ฐพ์ ์ ์์ด์ ์ ๋ง ๊ถ๊ธํฉ๋๋ค.
GitHub ์ํ ํตํฉ ์์
ํฌ๋ค์ โน๏ธ
@viktorbenei ๊ฐ ์ ๋ฐ์ดํธ๋ฉ๋๋ค! ์์ง
GitHawk ์ ํจ๊ป
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
ํผ๋๋ฐฑ๊ณผ ๋น๊ต๋ฅผ ์ํ Thx. ๋๋ ๊ทธ๊ฒ์ ์ข์ํ๊ณ ์ฐ๋ฆฌ PM๋ค์ด ์ด ์ค๋ ๋๋ฅผ ๋ณด๊ณ ์์ต๋๋ค.
์๋ํ ๋ฐฐํฌ ๋ฏธ์ (๋์ฐฉ ํ์ธ)
์ฐ๋ฆฌ๋ ํ์ฌ ๋ ๋์ ๋ฐฐํฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ด์ฌํ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ณ์ ์ง์ผ๋ด ์ฃผ์ธ์.
AppCenter์ ์คํ ์์ค ๊ณํ์ด ์์ต๋๊น? ๊ทธ๊ฒ์ ๋์ณค์ ์๋ ์์ต๋๋ค. AFAIK ๊ทธ๋ค๋ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. appcenter์ ์น ์ฌ์ดํธ์์ ๊ด๋ จ ํญ๋ชฉ์ ์ฐพ์ ์ ์์ด์ ์ ๋ง ๊ถ๊ธํฉ๋๋ค.
์์ง OSS ๊ณํ์ด ์์ต๋๋ค.
๋ชจ๋ ํ์ดํ ํ์๊ณ ์ข์ ์ฃผ๋ง ๋ณด๋ด์ธ์!
์ด๊ฒ์ ์ง๊ธ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค https://github.com/fastlane/ci ๐
@KrauseFx ๋๋ ์ด๊ฒ์ ๋ณด์๊ณ ๊ทธ๊ฒ์ ๋ํด ๋๋ฌด
์ปค๋ฎค๋ํฐ๋ก์ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ ์ ์๋ค๋ฉด ์ ๊ธฐ๋ฅ์ ์์ฒญํฉ๋๊น? ๊ฒ๋ค๊ฐ ๊ตฌ๊ธ์ด ์ด๋ฅผ ๋ท๋ฐ์นจํ๊ณ ์๋ค๊ณ ์? ๋ ๋ง์ ๊ฒ์ ์๊ตฌํ ์ ์์์ต๋๋ค.
์ฝ๋๊ฐ ์งํ๋จ์ ๋ฐ๋ผ ์ด์ ๊ธฐ์ฌํ๊ณ ์ฑ์ํด์ง์ ๋ฐ๋ผ ์ํฌํ๋ก์ ์ ์ฉํ ์ ์๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
์ปค๋ฎค๋ํฐ๋ฅผ ์ํด ํ๋ ๋ชจ๋ ์ผ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@KrauseFx ํ๋ ์ด์ด 3์ด ๊ฒ์์ ์ ์ฅํ์ต๋๋ค
GitHawk ์ ํจ๊ป
๋กค์ฆ
์ฑ ์ผํฐ๊ฐ ๊ตฌ๋ฌธ๊ณผ ๊ฐ์ [ci skip]
์ปค๋ฐ๋น ์ง์ํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
@dkhamsing์ ๋ถํํ๋ (์์ง) ์๋๋๋ค.
๋ด๊ฐ ์ฌ๋ํ buddybuild์ ์ง์ ํ ์ฅ์ ์ค ํ๋๋ FBSnapshotTestCase ๋จ์ ํ ์คํธ์์ ์๊ธฐ์น ์์ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ ๊ฒฝ์ฐ ํ ์คํธ ๊ฒฐ๊ณผ์์ ์ ํ/์ฐจ์ด๋ฅผ ํ์ํ๋ ๋ฐฉ์์ด์์ต๋๋ค.
์ด๋ฌํ ๋ค๋ฅธ ์์คํ ์ ์ ์ฌํ ๊ธฐ๋ฅ์ด ์๋์ง ์๋ ์ฌ๋์ด ์์ต๋๊น?
App Center๋ pull ์์ฒญ์์ ๋น๋๋ฅผ ์ง์ํฉ๋๊น? ๋๋ ๋งค์ฐ ํผ๋์ค๋ฌ์ cc @TroubleMakerBen
@dkhamsing App Center๋ PUSH ๊ธฐ๋ฐ ๋น๋๋ฅผ ์ง์ํ์ง๋ง ์์ง PR ๊ธฐ๋ฐ ๋น๋(๋ณํฉ ๊ธฐ๋ฐ ๋น๋)๋ ์ง์ํ์ง ์์ต๋๋ค.
์ ์๊ฒ ์ต๋๋ค. Thx Ryan, ๋ฒค ๐
GitHawk ์ ํจ๊ป
์ด ์ค๋ ๋๋ฅผ ์ฝ์ ํ์๋ Bitrise์ App Center์ ๋ ๊ฐ์ง ๊ฒฝ์ฃผ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฌด๋ UI ํ ์คํธ ์ฃผ์ ์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค. BB์์ ๋ช ๋ฒ์ ํด๋ฆญ๋ง์ผ๋ก ๊ฐ์ ์ฅ์น์์ ์์คํ๋ ์ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ค๋ ์ ์ด ๋ง์์ ๋ค์์ต๋๋ค. ๋ ผ์ ์ค์ธ ๋ ํ๋ซํผ ์ค ์ด๋ ๊ฒ์ด ์ด๋ฅผ ์ง์ํฉ๋๊น?
@dkhamsing App Center Test๋ ์ค์ ๋ก ๋ฌผ๋ฆฌ์ ์ฅ์น์์ UI ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค. ์์ฒ ๊ฐ๊ฐ ์์ต๋๋ค. ์๋์, ์ฌ์ง์ ๋ณผ ์ ์์ต๋๋ค ;)
์ฐ๋ฆฌ๋ ์ค์ ๋ก ์๋ก์ด CI ์๋ฃจ์ ์ ์๋ณํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
AppCenter : bb์ ์ ์ฌํ์ง๋ง PR ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค. ๊ด๋ฆฌ ์ธ๋ ฅ์ ๋ ์ด์ ์ ๋ง์ถ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ์์ ์ด ์คํจํ๋ฉด ๋ก๊ทธ๊ฐ ์คํ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
Bitrise: ๋งค์ฐ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ณ codecoverage, ๋ฐฐํฌ, ์๋ช , unitTest, UITest, ๋น๋, ์ ๋ฌ, ์ ๋ฆฌ ๋ฐ ์ฌ์ฉ์ ์ง์ ๊ณผ ๊ฐ์ ๋ง์ ๊ฐ๋ฐฉํ "๋จ๊ณ"๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ตฌ์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ .yaml ํ์ผ๊ณผ ์ฝ๊ฐ ํผ๋๋ฉ๋๋ค. ํธ์, PR ๋ฑ์ ๋จ๊ณ๋ฅผ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
์ ์ด๋ Bitrise ๋ ์ฐ๋ฆฌ๊ฐ ํ์ฉํ ์ ์๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๊ณ ์๊ฐํฉ๋๋ค!
App Center์์์ ํ ์คํธ์ ๋ํด ์์ ๊ฒ์๋ ๋งํฌ์์
- ํต์ฌ ๊ฐ๋ ๊ฒํ
Test Cloud ๊ฒฝํ์ ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ฉด ์ง์์ ํตํด ์ฌ์ฉ, ํ์ ๋ฐ ์ปค๋ฎค๋์ผ์ด์ ์ด ์ฉ์ดํด์ง๋๋ค. ์ฒซ ๋ฒ์งธ ํ ์คํธ๋ฅผ ์คํํ๊ธฐ ์ ์ ์ด๋ฌํ ๊ฐ๋ ์ ์ต์ํด์ง๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋์ฒด... ๋๋ ํต์ฌ์ด๋ ์๋๋ ์ด๋ค ๊ฐ๋ ๋ ๊ฒํ ํ๊ณ ์ถ์ง ์์ต๋๋ค. BB์์ ํ๋ ๊ฒ์ฒ๋ผ 2๋ฒ์ ํด๋ฆญ์ผ๋ก ์๋ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ ๋ ๋ฐ๋ธ์ต์ค ์์ง๋์ด๊ฐ ์๋๋ผ ์ฝ๋์ ๋๋ค...
์, App Center ๋ฌธ์๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค.
GitHawk ์ ํจ๊ป
@acristescu
์ด ์ค๋ ๋๋ฅผ ์ฝ์ ํ์๋ Bitrise์ App Center์ ๋ ๊ฐ์ง ๊ฒฝ์ฃผ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฌด๋ UI ํ ์คํธ ์ฃผ์ ์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค. BB์์ ๋ช ๋ฒ์ ํด๋ฆญ๋ง์ผ๋ก ๊ฐ์ ์ฅ์น์์ ์์คํ๋ ์ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ค๋ ์ ์ด ๋ง์์ ๋ค์์ต๋๋ค. ๋ ผ์ ์ค์ธ ๋ ํ๋ซํผ ์ค ์ด๋ ๊ฒ์ด ์ด๋ฅผ ์ง์ํฉ๋๊น?
(์์ง) ํ ๋ฒ์ ํด๋ฆญ์ ์๋์ง๋ง ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ ๊ฐ๋ ฅํฉ๋๋ค. https://blog.bitrise.io/introducing-solid-and-snappy-virtual-device-testing-for-android
์ฐ๋ฆฌ๋ ์ค์ ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค(์ด๊ฒ์ด ๊ธฐ๋ฅ ๋ถ์กฑ ๋๋ฌธ์ด ์๋๋ผ ์ฌ์ ํ "๋ฒ ํ"์ธ ์ด์ ;)).
@acristescu @dkhamsing ์ฐ๋ฆฌ๋ ์๊ณ ์์ต๋๋ค! ํผ๋๋ฐฑ์ ๊ณ์ํ์ญ์์ค.
@viktorbenei ์๋ํ ์์ ์ด์ง๋ง ๋ง์์ฌ ์ํธ ์คํ์ผ์ด
๋ฌธ์ ์์ต๋๋ค @acristescu , ๋๋ ๋น์ ์ ์์ ์ ๋ถ๋ช ํ ์๊ณ ์์ต๋๋ค. ์ ์งํ ํผ๋๋ฐฑ์ ํญ์ ํ์ํ๋ฉฐ ๋์์ธ ์ ๋ฐ์ดํธ๋ ์ด๋ฏธ ์์ ์ค์ ๋๋ค ;)
๋๋ ๊ฐ๋จํ ๋ฆฌํฌ์งํ ๋ฆฌ( https://github.com/acristescu/GreenfieldTemplate )๋ก ๋ ๋ค ์๋ํ๊ณ ๋ด๊ฐ ์ด๋๋ก ๊ฐ๋์ง ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ง๊ธ๊น์ง App Center๋ฅผ ์๋ํ๊ณ ๋ช ๊ฐ์ง ๊ฑธ๋ฆผ๋์ด ๋ฐ์ํ์ต๋๋ค.
google()
์ ์ฅ์๋ฅผ ํ๋ก์ ํธ์ gradle์ ์๋์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.##[warning]No test result files matching /Users/vsts/agent/2.127.0/work/1/s/**/build/test-results/TEST-*.xml were found, so publishing JUnit test results is being skipped.
๊ทธ๊ฒ ๋ญ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง...
Bitrise: ํ๋ฌ์ค ์ธก๋ฉด์์ ์ค์ ์ ๊ณ ํต์ค๋ฝ์ง ์์์ง๋ง ๋ฌด์์ด๋ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ yml ํ์ผ์ ๊ฐ์ ธ์์ ์กฐ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์ ๋ฐ์ดํธ: ์ํฌํ๋ก ํธ์ง๊ธฐ๋ผ๋ ๊ฒ์ ์ฐพ์์ต๋๋ค. ๋ฌด์ญ์ง๋ง ๊ฐ๋ ฅํด ๋ณด์ ๋๋ค) . ๊ฑธ๋ฆผ๋:
prodRelease
์ํ์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ์ ํํ ๋ค๋ฅธ ๋ ๊ฐ์ mockDebug
๋ฐ prodDebug
๋ฅผ ๋น๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋์์ ๋ณ๊ฒฝํด์ผํ๋์ง ์ฐพ์ ์ ์์ง๋ง ํ๋๋ ์์ด์ผํ๋ค๊ณ ํ์ ํฉ๋๋ค.test
๋์์ ์์ ๋กญ๊ฒ ์ ํํ ์ ์๋ ๋ณด๋์ค ํฌ์ธํธ)์ด๊ฒ์ ๊ฒ์ํ๊ธฐ ์ํด Thx
GitHawk ์ ํจ๊ป
์์ธํ ํผ๋๋ฐฑ์ ๋ณด๋ด ์ฃผ์ @acristescu ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋จํ ๊ฐ์ฌํฉ๋๋ค. ํนํ App Center์ JUnit ํ
์คํธ ๋ณด๊ณ ์ ํ์ผ์ ๋ํ ๊ฒฝ๊ณ ์์ ์ด๋ ์ค์ ํ
์คํธ ์คํ์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉฐ ๊ณง ์์ ๋์ด์ผ ํฉ๋๋ค.
๊ณ์ ์ค์ธ์!
๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ง๋ง ์ฑ ์ผํฐ์์ Google Play์ ์ ๋ก๋ํ๋๋ก ์ค๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ์๋์ผ๋ก ์ํํ๋๋ก ์ค๋ํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฑ ์ผํฐ์์ ์๋ช ๋ APK๋ฅผ ๋ค์ด๋ก๋ํ ๋ค์ ์ด๋ฅผ ๋ค์ ๋ฐฐํฌ/์ ์ฅ ์น์ (!)์ ์ ๋ก๋ํ์ฌ ์๋ํ๋๋ก ํด์ผ ํ์ต๋๋ค. ์์ฒญ๋๊ฒ ๋ณต์กํด ๋ณด์ด๋๋ฐ ๋ด๊ฐ ๋ญ ์๋ชปํ๊ณ ์๋ ๊ฑฐ์ง?
์ถ์ : ๋ถ์์ ๋ํ ๋ชจ์์ ๋ํ๊ธฐ ์ํด BuddyBuild๋ ์ฒ์์ ๋นํ์ฑํํ๋ ๊ฒ์ ์์๊ณ ์ฌ๋์ ๊ฐ์ ์์ด ์๋์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์๊ฐ์ ์ฌ๋ฌ ๋ฒ ๋ฐฐํฌํ์ต๋๋ค...
์๋ ํ์ธ์ @acristescu ์ ๋๋ค .
์ฌ: https://github.com/rnystrom/GitHawk/issues/1330#issuecomment -368228417
๋น๋ํ ๋ณํ์ ๋ฌป์ง ์๊ณ ์๋ชป๋ ๋ณํ์ ์ ํํ์ต๋๋ค. ๋๋ prodRelease๋ฅผ ์ํ์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ์ ํํ ๋ค๋ฅธ ๋ ๊ฐ์ mockDebug ๋ฐ prodDebug๋ฅผ ๋น๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋์์ ๋ณ๊ฒฝํด์ผํ๋์ง ์ฐพ์ ์ ์์ง๋ง ํ๋๋ ์์ด์ผํ๋ค๊ณ ํ์ ํฉ๋๋ค.
์ค์ ๋ก ํ์ฌ ์ค์บ๋๋ ๊ธฐ๋ณธ ์ํฌํ๋ก์ ๋ํด ๊ตฌ์ฑ๋ assembleDebug
์ ํจ๊ป Gradle Runner ๋จ๊ณ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ์ถฉ๋ถํ ๊ฐ๋จํ์ง ์์ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๊ฐ๋จํ ๋งํด์ prodRelease
๋ฅผ ๋น๋ํ๋ ค๋ ๊ฒฝ์ฐ gradle ์์
์ assembleProdRelease
์
๋๋ค. lint๋ฅผ ์คํํ๋ ค๋ ๊ฒฝ์ฐ gradle ์์
์ lint
์
๋๋ค. Gradle Runner ๋จ๊ณ์์ ์ด ๋ชจ๋ ์์
์ ์ํํ ์ ์์ต๋๋ค. ์ฌ์ค Gradle์ ์ฌ๋ฌ ์์
์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก lint
๋ฅผ ์คํํ ๋ค์ assembleProdRelease
๋ฅผ ์์
์ผ๋ก ์ง์ ํ ์๋ ์์ต๋๋ค. lint assembleProdRelease
๋ ๋ค ํ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ ๊ตฌ์ฒด์ ์ธ ๋จ๊ณ(์: gradle lint
์์
์ ์คํํ๋ "Lint" ๋จ๊ณ, ํด๋น ์์
์ "Gradle Runner" ๋จ๊ณ) ๐
๋น๋๋ ์ฑ ์ผํฐ์ ๊ฒฝ์ฐ 2๋ถ 16๋ถ ๋์ 4๋ถ์ด ๋ ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค. ์ด๊ฒ์ ์๋ง๋ ์์ ๋ฌธ์ ๋๋ฌธ์ผ๊น์?
์ค์ ๋ก assembleDebug
๊ฐ ๋จ์ผ "ProdRelease" ๋์ 2๊ฐ์ ๊ฐ๋ณ APK/๋ณํ์ ๊ทํ์ ๊ฒฝ์ฐ์ ์์ฑํ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋ก๊ทธ ์ด๋์๋ junit ํ ์คํธ์ ๋ํ ์ธ๊ธ์ด ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๊ทธ๋ค์ ์คํํ๋์ง ์์ฌํฉ๋๋ค.
ํ
์คํธ๋ฅผ ์คํํ Gradle Runner ๋จ๊ณ์ Gradle ์์
์
๋ ฅ์ผ๋ก test
๋ฅผ ์ง์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น gradle ์์
์ ์คํํ๋๋ก ๊ตฌ์ฑ๋ Gradle ๋จ์ ํ
์คํธ ๋จ๊ณ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ด๋ค ๋น๋ ID๋ฅผ ์ฌ์ฉํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ด๋ป๊ฒ ๋ณด๋์?
๋น๋ ๋ฒํธ๋ฅผ bitrise.io ๋น๋ ๋ฒํธ๋ก ์ค์ ํ๋์ง ์ฌ๋ถ๋ฅผ ์๋ฏธํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Android versionCode ๋ฐ versionName ๋ณ๊ฒฝ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
๊ทํ์ ํผ๋๋ฐฑ์ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฃ๊ณ ์์ผ๋ฉฐ ์ด๋ฏธ ์ค์ ๊ฒฝํ์ ์ด๋ฌํ ์ ์ ๊ฐ์ ํ ์์ ์ ๋๋ค! ;)
๋ฉ์ง ํ ๋ก ์ ๋๋ค. Carthage๋ฅผ ์ง์ํ๋ BuddyBuild ๋์์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
Nevercode๋ฅผ ์ดํด๋ณด๋ cocoapods๋ง ์ง์ํฉ๋๋ค.
์ฑ ์ผํฐ๊ฐ ์นด๋ฅดํ๊ณ ๋ฅผ ์ง์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ์์ต๋๊น?
@jamesone
๊ฐ์ฅ ์ข์ ์ต์ ์ Bitrise๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. Bitrise๋ ํ์ดํ๋ผ์ธ bitbucket ๊ณผ ๊ฐ์ ํ๋ซํผ์ ์ ๊ณตํ๋ฉฐ ๋จ๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.
์ฌ์ค ์ฐ๋ฆฌ๋ bb์์ bitrise๋ก ์ฎ๊ฒผ๊ณ Android์ iOS๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์๋ฒฝํฉ๋๋ค!
๋ฉ์ง @cbedoy buddybuild ๊ฐ ๋ชจ๋ ์ง์ ์ ์ ๊ณตํ๋ ์ค์น ๊ฐ๋ฅํ ๋น๋์ ๋ํด ๋ฌด์์ ํ์ต๋๊น? Bitrise์๋ ์ด์ ๋ํ ํตํฉ ๋๋ ์ง์์ด ์์ต๋๊น?
PR ๋๋ ํ๊ทธ๋ฅผ ํธ์ํ๊ฑฐ๋ ์์ฑํ ๋ ์ํฌํ๋ก (๋ง์ _๋จ๊ณ_)๋ฅผ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
๋ํ ์ง์ ๋ณ๋ก ๋น๋๋ฅผ ์์ฝํ ์ ์์ต๋๋ค.
๋ค์์ ํ์ธํด์ผ ํฉ๋๋ค.
https://devcenter.bitrise.io/bitrise-cli/workflows/
https://devcenter.bitrise.io/bitrise-cli/steps/
bitrise๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ดํดํ๋ฉด ํ์ํ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ํฌํ๋ก๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฆ, ๋๊ตฐ๊ฐ PR์ ์์ฑํ๋ ๊ฒฝ์ฐ unitTesting์ ์คํํ๋ ์ํฌํ๋ก๋ฅผ ์ํ๊ฑฐ๋ ๋ง์คํฐ์ ํ๊ทธ๊ฐ ์ง์ ๋์์ ๋ .ipa๋ฅผ ๋น๋ํ๊ณ ์์ฑํ๋ ์ํฌํ๋ก๋ฅผ ์ํฉ๋๋ค.
Bitrise๋ unitTest, CodeCoverage ๋๋ ๋ณด๊ด ๋ฐ ๋ฐฐํฌ ์คํ์ ์ํด ํ์ฌ _steps_๋ฅผ ์ ํํ ์ ์๋ ๋์ปค ์ด๋ฏธ์ง์ ๊ฐ์ต๋๋ค.
๋ฉ์ง ๋จ์! ์ ๋ง ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฝ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ ๊ฒ์ด๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๋ถ๋ช ํ ํธํฅ๋์ด ์์ต๋๋ค ;) ๊ทธ๋ฌ๋ ์ด์ ๊ฐ์ ์ผ์ App Center์์ ์ผ์ด๋์ง ์์ ๊ฒ์ ๋๋ค.
๊ด์ฌ์ด ์์ผ์๋ฉด ์ฐ๋ฝ์ฃผ์ธ์.