Bitrise হল একটি বিশেষায়িত CI/CD প্ল্যাটফর্ম মোবাইল ডেভেলপমেন্টের জন্য, যা প্রস্তুত Steps-এর চারপাশে নির্মিত — iOS এবং Android অ্যাপ্লিকেশন বিল্ড, সই এবং প্রকাশের জন্য পূর্ব-কনফিগার করা মডিউল। Bitrise, 2024-এর তথ্য অনুসারে, প্ল্যাটফর্মটি 400-এর বেশি প্রস্তুত Step সমর্থন করে এবং Xcode, Gradle, Fastlane, Firebase এবং App Store Connect-এর সাথে সংহত হয়।
মূল বিষয়
Bitrise হল একটি CI/CD প্ল্যাটফর্ম যা 2016 সালে চালু হয়েছে এবং সম্পূর্ণরূপে মোবাইল ডেভেলপমেন্টের উপর দৃষ্টি নিবদ্ধ করে। GitHub Actions এবং GitLab CI-র মতো সার্বজনীন সমাধানের বিপরীতে, Bitrise মূলত iOS এবং Android অ্যাপ বিল্ড স্বয়ংক্রিয় করার জন্য ডিজাইন করা হয়েছিল। প্ল্যাটফর্মটি ক্লাউডে কাজ করে এবং macOS ও Linux সহ নিজস্ব হোস্টেড রানার সরবরাহ করে। Bitrise সমস্ত জনপ্রিয় মোবাইল স্ট্যাক সমর্থন করে: Swift, Kotlin, Flutter, React Native, Cordova এবং Xamarin।
Bitrise-এর প্রধান সুবিধা হল মোবাইল ডেভেলপমেন্টের সাধারণ কাজের জন্য পূর্ব-কনফিগার করা Step টেমপ্লেট: Xcode বিল্ড, Gradle অ্যাসেম্বল, Fastlane, Firebase Distribution, TestFlight, Google Play। পাইপলাইন সেটআপ ভিজুয়াল এডিটরের মাধ্যমে মিনিটের মধ্যে সম্পন্ন হয় এবং YAML কনফিগারেশন স্বয়ংক্রিয়ভাবে bitrise.yml ফাইলে তৈরি হয়। অভিজ্ঞ ব্যবহারকারীদের জন্য, অটোকমপ্লিট সহ YAML এডিটর উপলব্ধ।
Bitrise আর্কিটেকচার দুটি মূল ধারণার উপর নির্মিত: Workflow এবং Step। একটি Workflow হল Steps-এর একটি ক্রম যা পাইপলাইন নির্ধারণ করে। প্রতিটি প্রকল্পে একাধিক Workflows থাকতে পারে: প্রাথমিক (মূল বিল্ড), ডিপ্লয় (প্রকাশনা), টেস্ট (শুধু পরীক্ষা)। Workflow ট্রিগার দ্বারা শুরু হয়: push, PR, tag বা সময়সূচী অনুসারে। Workflows ওয়েব ইন্টারফেস থেকে ম্যানুয়ালিও চালু করা যেতে পারে, যা অ্যাড-হক বিল্ডের জন্য উপযোগী।
Step হল একটি পারমাণবিক মডিউল যা একটি একক কাজ সম্পাদন করে। Steps ভিজুয়াল এডিটরে টেনে আনা যায়, তাদের ক্রম এবং কনফিগারেশন পরিবর্তন করা যায়। Bitrise প্রদান করে Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution এবং Slack বিজ্ঞপ্তির জন্য Steps। সম্প্রদায়ও Steps তৈরি করে — সেগুলি Step Library-এর মাধ্যমে উপলব্ধ। প্রতিটি Step-এর বাধ্যতামূলক এবং ঐচ্ছিক ইনপুট প্যারামিটার এবং আউটপুট ভেরিয়েবল রয়েছে যা পরবর্তী Steps দ্বারা ব্যবহার করা যেতে পারে।
Bitrise Pipeline ধারণা সমর্থন করে — একটি পাইপলাইনে একাধিক Workflows-এর সমন্বয়। একটি Pipeline-এ সমস্ত প্ল্যাটফর্মের জন্য প্রাথমিক বিল্ড এবং ডিপ্লয়মেন্ট ও টেস্টিংয়ের জন্য পৃথক ওয়ার্কফ্লো অন্তর্ভুক্ত থাকতে পারে। এটি জটিল CI/CD প্রক্রিয়া তৈরি করতে দেয় যেখানে একটি বিল্ড অন্যটিকে ট্রিগার করে। Bitrise Stacks রানারে পূর্ব-ইনস্টল করা সফ্টওয়্যার নির্ধারণ করে: Xcode, Android SDK, Flutter, Node.js এবং অন্যান্য সরঞ্জাম।
Bitrise GitHub, GitLab, Bitbucket এবং Azure DevOps-এর সাথে সংহত হয়। রিপোজিটরি সংযোগ করার সময়, Bitrise স্বয়ংক্রিয়ভাবে প্রকল্পের ধরন (iOS, Android, Flutter) সনাক্ত করে এবং Workflow টেমপ্লেট সুপারিশ করে। ব্যক্তিগত রিপোজিটরির জন্য, Bitrise OAuth বা SSH কী-এর মাধ্যমে অ্যাক্সেসের অনুরোধ করে। একটি অ্যাপ্লিকেশনে একাধিক রিপোজিটরি সংযুক্ত করা যেতে পারে।
সংযোগের পরে, Bitrise push এবং PR-এ স্বয়ংক্রিয়ভাবে বিল্ড শুরু করার জন্য রিপোজিটরিতে একটি ওয়েবহুক তৈরি করে। প্রতিটি বিল্ড একটি অনন্য নম্বর, লগ এবং আর্টিফ্যাক্ট পায়। ইন্টারফেস বিল্ড ইতিহাস ব্রাউজ করা, পরিবর্তন তুলনা করা এবং ব্যর্থ বিল্ড পুনরায় চালু করার অনুমতি দেয়। Bitrise নিয়মিত রাতারাতি বিল্ডের জন্য শিডিউলড বিল্ড এবং কমিট ট্র্যাকিংয়ের জন্য Jira ইন্টিগ্রেশনও সমর্থন করে।
iOS-এর জন্য কোড সাইনিং সবচেয়ে জটিল CI/CD কাজগুলির মধ্যে একটি, এবং Bitrise এটি যতটা সম্ভব সহজভাবে সমাধান করে। প্ল্যাটফর্মটি সার্টিফিকেট এবং প্রোভিজনিং প্রোফাইল এনক্রিপ্টেড আকারে সংরক্ষণ করে, বিল্ডের আগে সেগুলি স্বয়ংক্রিয়ভাবে উপযুক্ত keychain-এ ইনস্টল করে এবং সই করা IPA এক্সপোর্ট করে। Certificate and Profile Installer Step Bitrise স্টোরেজ থেকে ফাইল ডাউনলোড করে এবং Xcode কনফিগার করে। Development, AdHoc, AppStore এবং Enterprise সার্টিফিকেট প্রকার সমর্থিত।
App Store Connect-এ প্রকাশের জন্য, Bitrise Xcode Archive & Export-এর মাধ্যমে IPA আপলোড করার জন্য Steps সরবরাহ করে। Google Play প্রকাশ Keystore সই সহ Gradle Runner ব্যবহার করে, তারপরে APK/AAB Google Play Deploy Step-এর মাধ্যমে Google Play Console-এ আপলোড করা হয়। Firebase App Distribution-এর জন্য, শুধু Firebase Token এবং পরীক্ষক গ্রুপ উল্লেখ করতে হবে। Bitrise প্রতিটি প্রকাশের আগে সংস্করণ নম্বর এবং বিল্ড নম্বর আপডেট স্বয়ংক্রিয় করে।
সার্টিফিকেট ওয়েব ইন্টারফেসের Code Signing বিভাগে আপলোড করা হয়: ব্যক্তিগত কী সহ P12, প্রোভিজনিং প্রোফাইল (.mobileprovision), Android-এর জন্য Keystore (.jks/.keystore)। Bitrise স্বয়ংক্রিয়ভাবে প্রতিটি Workflow রানে iOS সার্টিফিকেট keychain-এ ইনস্টল করে এবং সই করা অ্যাপ্লিকেশন এক্সপোর্ট করে। Android-এর জন্য, শুধু Keystore ফাইল আপলোড করুন — Bitrise বিল্ডের সময় এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে এটি Gradle-এ পাঠায়।
আসুন একটি Flutter অ্যাপ্লিকেশনের জন্য Workflow দেখি যা iOS এবং Android-এর জন্য বিল্ড তৈরি এবং প্রকাশ করে। Bitrise স্বয়ংক্রিয়ভাবে একটি Flutter প্রকল্প সনাক্ত করে এবং উপযুক্ত Steps সুপারিশ করে। Workflow-এ Flutter ইনস্টলেশন, pub-cache ক্যাশিং, বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্ট অন্তর্ভুক্ত রয়েছে। iOS বিল্ডের জন্য, অতিরিক্তভাবে কোড সাইনিং সার্টিফিকেট প্রয়োজন, যা Bitrise স্বয়ংক্রিয়ভাবে লোড করে।
Flutter অ্যাপ তৈরি করার সময়, Bitrise প্রতিটি প্ল্যাটফর্মের জন্য আলাদা কনফিগারেশন সমর্থন করে। Android বিল্ড Flutter SDK সহ Linux রানারে চলে, iOS macOS রানারে। একটি Workflow-এ শর্তসাপেক্ষ Steps অন্তর্ভুক্ত থাকতে পারে: build_android এবং build_ios, যা শুধুমাত্র নিজ নিজ প্ল্যাটফর্মে চলে। React Native প্রকল্পের জন্য, Bitrise npm/nvm এবং Metro bundler সহ Steps-এর অনুরূপ সেট অফার করে।
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: main
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@4:
run_if: true
- git-clone@8: {}
- flutter-installer@0:
inputs:
- version: 3.24.0
- flutter-build@0:
inputs:
- platform: both
- ios_output_type: archive
- deploy-to-bitrise-io@2: {}
বিল্ডের পরে, iOS এবং Android-এর জন্য Firebase App Distribution Step যোগ করা যেতে পারে। Step গ্রহণ করে firebase_token, app_id এবং testers_group। Bitrise Secrets থেকে মান প্রতিস্থাপন করে — সুরক্ষিত টোকেন সংরক্ষণ নিশ্চিত করে যে সেগুলি লগে না আসে।
- firebase-app-distribution@1:
inputs:
- firebase_token: $FIREBASE_TOKEN
- app_id: $FIREBASE_IOS_APP_ID
- testers_group: qa-team
- release_notes: |
Build $BITRISE_BUILD_NUMBER
গোপনীয় তথ্যের সঠিক ব্যবস্থাপনা CI/CD প্রক্রিয়াগুলির সুরক্ষার ভিত্তি। Bitrise Secrets এনক্রিপ্ট করা হয় এবং সংরক্ষণের পরে পড়া যায় না। নতুন অ্যাপ্লিকেশন তৈরি করার সময়, Bitrise অন্য প্রকল্প থেকে Secrets আমদানি করার বা ম্যানুয়ালি সেট করার প্রস্তাব দেয়। বড় দলের জন্য, Environment Groups বৈশিষ্ট্য উপলব্ধ — অ্যাপ্লিকেশনের একটি গ্রুপের জন্য ভেরিয়েবল এবং Secrets-এর কেন্দ্রীভূত ব্যবস্থাপনা।
Bitrise গোপনীয় তথ্যের জন্য অন্তর্নির্মিত Secrets স্টোরেজ সরবরাহ করে: API কী, Firebase টোকেন, Keystore পাসওয়ার্ড, Apple ID। Secrets সংজ্ঞায়িত করা হয় ওয়েব ইন্টারফেসে কী-মান জোড়া হিসাবে এবং বিল্ড লগে মাস্ক করা হয়। এগুলি অ্যাপ্লিকেশন স্তর এবং Workflow স্তরে উপলব্ধ। Secrets সংরক্ষণের পরে পড়া যায় না — এগুলি কেবল ওভাররাইট করা যায়।
এনভায়রনমেন্ট ভেরিয়েবলগুলি (Secret চিহ্ন ছাড়া) কনফিগারেশনের জন্য ব্যবহৃত হয়: Xcode সংস্করণ, প্রকল্প পাথ, বিল্ড স্কিম। Bitrise এনভায়রনমেন্ট ভেরিয়েবলগুলি (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) বিল্ড সম্পর্কে মেটা-তথ্য সরবরাহ করে। Secrets সংরক্ষণের সময় এনক্রিপ্ট করা হয় এবং Workflow নির্বাহের সময় কেবল রানারে ডিক্রিপ্ট করা হয়। ভেরিয়েবলের গ্রুপ ব্যবস্থাপনার জন্য, Bitrise Environment Groups সমর্থন করে — একসাথে একাধিক অ্যাপ্লিকেশনে প্রযোজ্য ভেরিয়েবলের সেট।
Bitrise-এর মাধ্যমে iOS সার্টিফিকেট ব্যবস্থাপনা বিশেষ মনোযোগের দাবি রাখে। প্ল্যাটফর্মটি স্বয়ংক্রিয়ভাবে বিল্ডের আগে P12 এবং প্রোভিজনিং প্রোফাইল সিস্টেম keychain-এ ইনস্টল করে। Android-এর জন্য, Keystore ফাইল ব্যবহার করা হয়, যা Code Signing বিভাগে আপলোড করা হয়। প্রতিটি সার্টিফিকেট ফাইল এনক্রিপ্টেড আকারে সংরক্ষিত হয় এবং শুধুমাত্র বিল্ডের সময় ডিক্রিপ্ট করা হয়।
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise বিল্ডের জন্য বিভিন্ন স্ট্যাক সরবরাহ করে — সরঞ্জাম এবং SDK সহ পূর্ব-ইনস্টল করা ইমেজ। উপলব্ধ স্ট্যাকগুলির মধ্যে রয়েছে Xcode (সংস্করণ 14, 15, 16 iOS SDK 17, 18 সহ), Android (SDK এবং NDK-এর বিভিন্ন সংস্করণ সহ), Flutter, React Native এবং Kotlin Multiplatform। প্রতিটি স্ট্যাকের পূর্ব-ইনস্টল করা সরঞ্জাম এবং সংস্করণগুলির বিবরণ রয়েছে।
স্ট্যাক নির্বাচন বিল্ড সময় এবং প্রকল্প সামঞ্জস্যকে প্রভাবিত করে। Bitrise নিয়মিত স্ট্যাক আপডেট করে, নতুন সরঞ্জাম সংস্করণ যুক্ত করে। প্ল্যাটফর্ম আপডেট হলে অপ্রত্যাশিত পরিবর্তন এড়াতে bitrise.yml-এ স্ট্যাকের একটি নির্দিষ্ট সংস্করণ নির্ধারণ করা যেতে পারে। কাস্টম নির্ভরতার জন্য, Script Step ব্যবহার করে মূল বিল্ডের আগে প্রয়োজনীয় প্যাকেজ ইনস্টল করা হয়। Bitrise Linux স্ট্যাকের জন্য Docker ইমেজও সমর্থন করে, যা Android বিল্ডের জন্য কাস্টম পরিবেশ ব্যবহারের অনুমতি দেয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
Bitrise একটি বিনামূল্যের পরিকল্পনা সরবরাহ করে যাতে প্রতি মাসে 90 বিল্ড মিনিট এবং একটি কনকারেন্ট বিল্ড অন্তর্ভুক্ত। Developer ($79/মাস) 3000 মিনিট, 5টি কনকারেন্ট বিল্ড এবং সমস্ত ইন্টিগ্রেশন অন্তর্ভুক্ত করে। Enterprise — কাস্টম মূল্য নির্ধারণ।
Bitrise iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic এবং Xamarin সমর্থন করে। প্রতিটি প্ল্যাটফর্মের জন্য পূর্ব-ইনস্টল করা সরঞ্জাম এবং Workflow টেমপ্লেট রয়েছে।
Bitrise অতিরিক্ত সেটআপ ছাড়াই iOS বিল্ডের জন্য macOS রানার সরবরাহ করে। প্ল্যাটফর্মটি macOS অবকাঠামো স্বয়ংক্রিয়ভাবে পরিচালনা করে — অ্যাপ্লিকেশন স্ট্যাক অনুসারে রানার নির্বাচিত হয়।
Bitrise সার্টিফিকেট এনক্রিপ্টেড আকারে সংরক্ষণ করে এবং Certificate and Profile Installer Step-এর মাধ্যমে বিল্ডের আগে সেগুলি স্বয়ংক্রিয়ভাবে keychain-এ ইনস্টল করে। Android-এর জন্য একইভাবে — Keystore আপলোড করা হয় এবং সই করার সময় Gradle দ্বারা ব্যবহৃত হয়।
হ্যাঁ, Bitrise Script Step (bash স্ক্রিপ্ট) এবং GitHub থেকে কাস্টম Step Libraries-এর মাধ্যমে কাস্টম Steps সমর্থন করে। আপনি Bitrise ডকুমেন্টেশন অনুসারে নিজস্ব Step তৈরি করতে পারেন এবং Step Library-এ প্রকাশ করতে পারেন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন