This is a Turkish tutorial about Fastlane. I will write about this awesome tool.
Tekrardan merhaba arkadaşlar. Bugün Fastlane ile versiyon yönetimini anlatacağım. Ben Github kullanıyorum. Siz istediğinizi kullanabilirsiniz. Fastlane'nin nasıl kullanıldığını görmek için bkz. https://steemit.com/utopian-io/@thornaci/fastlane-kullanimi-tr-part-1
Standart git kullanımlarında yaptığımız şeyler bellidir. Yaptıklarımızı commitleriz. Projenin son halini çekeriz (pull). Varsa bir değişiklik bizdekiler ile birleştirip göndeririz (push). Bir çakışma (conflict) olmuşsa da düzeltir tekrar göndeririz. Bunları terminalden veya herhangi bir uygulamadan yapabiliyoruz. Fastlane aynı işlemleri tek bir komut ile yapmamızı sağlayacak.
Şimdi Fastfile dosyamın içinde bir lane oluşturuyorum ve adına push diyorum. Şimdi yapmamız gerekenler ilk önce yaptığımız değişiklikleri commitlemek. Bunun için git_add ve commit_version_bump(message: 'This files pushed via Fastlane', force: true) yazıyorum.
Şuanda yaptığımız değişiklikleri ekleyip commitlemiş olduk. Şimdi de repoda bir şey değişmişse çekmek için kullanacağımız işlemi yapalım. git_pull ile bunu yapıyoruz. Son olarak yaptıklarımızı göndermek kaldı. Bunun için de push_to_git_remote. Şimdi dosyamıza bir göz atalım.
Terminalden fastlane push yazdığımız zaman reponun master branchine gönderilmiş olacak. Peki başka bir branch üzerinde işlem yapmak istersek ne yapacağız?
Cevap "push_to_git_remove" kodunu özelleştireceğiz.
push_to_git_remote(remote: 'origin',
local_branch: 'dev',
remote_branch: 'dev'
)
Gördüğünüz gibi local bulunan branch'imi ve remote branch'imi belirttim. Artık istediğim branch üzerinde çalışabilirim.
Şimdi uygulamamızda daha fazla işlemi otomatik hale getirelim. Bazı zamanlarda uygulamamızı tag'leyip göndermemiz gerekir. Müşteriye, Store'a yeni versiyon gönderdiğimizde, Sprint'imizin sonuna geldiğinde vb. durumlarda mutlaka ihtiyaç duyarız. Bunun için birçok yöntem olsa da ben versiyon numarasıyla tag'lemeyi tercih ediyorum. Bunun için
version = get_version_number()
git_tag = "Version-" + version
add_git_tag(tag: git_tag)
gibi bir hareket yeterli olacaktır. Şimdi dosyamızın son haline bakalım.
Her şey ne kadar kolay değil mi? Şimdi de farklı bir senaryo düşünelim. Örneğin bir test ekibi ile beraber çalışıyorsunuz. Belirli aralıklarla onlara versiyon vermeniz gerekiyor ve her versiyon verdiğinizde projenizin build numaranızı arttırmanız gerekiyor. Şimdi lane'lerimizi ayıralım. Geçici stabil versiyonları başka bir branch'te tuttuğumuzu düşünelim. Her cuma oraya versiyon gönderdiğinizi farzedin.
lane :pushToSprint
version = get_version_number()
git_tag = "Version-" + version
add_git_tag(tag: git_tag)
git_add
commit_version_bump(message: 'These files pushed via Fastlane for PO', force: true)
push_to_git_remote(remote: 'origin',
local_branch: 'dev',
remote_branch: 'sprint'
)
lane :pushToDev do
increment_build_number
commit_version_bump(message: 'These files pushed via Fastlane for Tester', force: true)
push_to_git_remote(remote: 'origin',
local_branch: 'dev',
remote_branch: 'dev'
)
end
Gördüğünüz gibi çok kolay bir şekilde versiyon işlemlerimizi otomatikleştirmiş olduk. Fastlane bunlar dışında son versiyonu görme, toplam kaç commit olmuş, şuan buluduğun branch hangisi vb. birçok komutu daha barındırıyor. Ayrıntılı liste için bkz. https://docs.fastlane.tools/actions/#source-control.
Kendi projelerimde çokça kullandığım bu güzel şeyler umarım sizler içinde yararlı olur. Sağlıcakla kalın.
Posted on Utopian.io - Rewarding Open Source Contributors