fastlane เครื่องมือช่วยให้ชีวิต command line สะดวกขึ้น
ตัวอย่างการใช้งานอย่างง่าย
% fastlane run build_app
ซึ่งเราสามารถค้นหาคำสั่ง fastlane ได้จาก https://docs.fastlane.tools/
ใช้งานแบบซับซ้อนมากขึ้นด้วย Fastfile
โดย lane คือฟังก์ชันที่รวม logic หรือ คำสั่งต่างๆ ไว้ด้วยกัน ซึ่งภาษาที่ใช้จะเป็นภาษา Ruby
lane :beta do increment_build_number build_app upload_to_testflight end lane :release do capture_screenshots build_app upload_to_app_store # Upload the screenshots and the binary to iTunes slack # Let your team-mates know the new version is live end
Automation with fastlane
fastlane มีบทบาทอย่างมากในการทำ automate pipeline สำหรับ mobile dev เนื่องจากวิธีการแบบ manual มักอยู่บน editor เฉพาะทาง เช่น Android Studio หรือ Xcode ถึงแม้ว่าจะสามารถใช้ script ได้บ้าง แต่ก็มักมีความยาวที่ทำให้ไม่สะดวกต่อการ maintenance มากนัก
เราสามารถออกแบบ Fastfile เพื่อให้ง่ายต่อการใช้ command-line เรียบร้อยแล้ว เราสามารถเรียกใช้ lane ของเราได้ง่ายๆ แบบนี้เลย
% fastlane <YOUR LANE NAME>
ตัวอย่าง
% fastlane release
Integrate with CI/CD
ถึงแม้ว่า fastlane จะช่วยให้การใช้ command-line ง่ายขึ้นจริง แต่เมื่อเราเริ่มจับกับ CI/CD Tools อย่าง Jenkins หรือ GitHub Actions จำเป็นจะต้องแบ่งแยก lane ให้ดีและแยกให้ชัดว่าการทำงานแบบไหนควรเป็น fastlane หรือใช้ script บน CI/CD ไปเลยโดยไม่ต้องมี fastlane
- Build, Signing, Deploy ควรใช้ fastlane เพื่อให้ภายในทีมสามารถใช้ได้สะดวก สามารถใช้แทนท่า manual ไปได้เลย
- Machine Script ควรใช้ CI/CD เพราะหลายครั้ง environment มักไม่ตรงกับเครื่อง dev เช่น unix, linux หรือหากเป็น script ง่ายๆ ก็ไม่จำเป็นต้องทำ fastlane ก็ได้
สุดท้าย fastlane ยังมีความสามารถอีกมาก ซึ่งเราสามารถค้นหาได้ที่ https://docs.fastlane.tools/ เช่น firebase_app_distribution, slack เป็นต้น