ऐसे कई दोहराव वाले कार्य हैं जिन्हें हमें हर दिन करना पड़ता है। और वे थोड़े उबाऊ, कठिन और नीरस हो सकते हैं।
लेकिन उन दैनिक कार्यों में मेहनत करने के बजाय, आप उन्हें किसी और को सौंप सकते हैं ताकि कोई और या कोई चीज़ उन्हें आपके लिए करे। इस तरह, आपके पास उन चीजों को करने के लिए अधिक समय होगा जो आप करना चाहते हैं। आपके पास आराम करने का समय होगा।
यदि आपने कभी Android एप्लिकेशन विकसित किया है, तो आप जानते हैं कि कुछ कार्य कितने थकाऊ हो सकते हैं:
- टेस्ट चलाना
- यह सुनिश्चित करना कि नया कोड मर्ज करते समय एप्लिकेशन कंपाइल हो
- एप्लिकेशन को बिल्ड और पब्लिश करना।
तो हम इन कार्यों को किसे सौंपें? किसी सहकर्मी को? वे इसे किसी और को सौंप सकते हैं और इससे किसी का समय खाली नहीं होगा। साथ ही, हम अपने सहयोगियों को परेशान नहीं करना चाहते। समाधान?
GitHub Actions को नमस्ते कहें। 👐
GitHub Actions क्या हैं?
GitHub Actions वे कमांड हैं जिन्हें हम तब ट्रिगर कर सकते हैं जब हमारे रिपॉजिटरी में कुछ होता है। इसके मूल में, एक एक्शन एक कॉन्फिगरेशन फाइल होती है जिसमें कमांड की एक सूची होती है जो वर्णन करती है:
- क्या होना चाहिए
- यह कब होना चाहिए
यह कॉन्फिगरेशन फाइल YAML फॉर्मेट (.yml) में होती है और एक उदाहरण ऐसा दिखता है:
name: My GitHub Action on: pull_request jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1आइए उपरोक्त उदाहरण को समझते हैं:
- हम अपने एक्शन को एक नाम देते हैं (My GitHub Action) [वैकल्पिक]
- हम दर्शाते हैं कि यह एक्शन कब चलना चाहिए (जब पुल रिक्वेस्ट खोली जाती है)
- हम कार्यों की एक सूची शुरू करते हैं (jobs) जो एक बार इस एक्शन के ट्रिगर होने पर होने चाहिए
- पहला एक build एक्शन है
- runs-on कमांड GitHub को बताता है कि कौन सा रनर इस जॉब को निष्पादित करेगा (यह एक वर्चुअल सर्वर है और आप Windows/Mac/Linux के बीच चुन सकते हैं)
- प्रत्येक जॉब में कई चरण हो सकते हैं जिन्हें steps कीवर्ड द्वारा एक साथ समूहीकृत किया जाता है
- uses कीवर्ड स्क्रिप्ट को बताता है कि कौन सा एक्शन लागू करना है
यह एक बहुत छोटा उदाहरण है जो GitHub Actions की सभी विशेषताओं को प्रदर्शित नहीं करता है, लेकिन यह कॉन्फिगरेशन फाइल की संरचना में एक झलक प्रदान करता है।
अगले अनुभागों में, हम ऐसे एक्शन बनाएंगे जो हमारे डेवलपमेंट चक्र को कुशल और प्रभावी बनाए रखने में मदद करेंगे।
ध्यान दें कि सभी GitHub Actions फाइलों को आपके प्रोजेक्ट के मुख्य फोल्डर में पथ .github/workflows के तहत रहना आवश्यक है:

पुल रिक्वेस्ट के लिए GitHub Action कैसे बनाएं
चाहे आप किसी प्रोजेक्ट पर अकेले काम कर रहे हों या टीम का हिस्सा हों, यह सुनिश्चित करना महत्वपूर्ण है कि आपका एप्लिकेशन स्थिर है। इसलिए जब भी आप पुल रिक्वेस्ट मर्ज करने पर विचार करते हैं, तो यह सुनिश्चित करना पूरी तरह से समझ में आता है कि आपका एप्लिकेशन ठीक से कंपाइल हो रहा है और सभी टेस्ट पास हो रहे हैं।
हमने अपने उदाहरण में पहले ही दिखाया है कि हम अपने रिपॉजिटरी में कोड को कैसे चेकआउट कर सकते हैं। इस एक्शन में, हम निम्नलिखित चरण शामिल करेंगे:
- JDK संस्करण सेट करना
- वर्चुअल एनवायरनमेंट के लिए अनुमतियां बदलना
- टेस्ट चलाना (यदि हमारे पास कोई है)
- एप्लिकेशन बनाना
name: Android Build on: pull_request jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Set Up JDK // 1 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Change wrapper permissions // 2 run: chmod +x ./gradlew - name: Run Tests // 3 run: ./gradlew test - name: Build Project // 4 run: ./gradlew assembleआप देख सकते हैं कि ऊपर, प्रत्येक चरण के अपने गुण और विशेषताएं हैं जो उसके लिए विशिष्ट हैं।
मैं उनमें से प्रत्येक पर विस्तार से नहीं जाऊंगा, क्योंकि आप डॉक्यूमेंटेशन के माध्यम से स्वयं ऐसा कर सकते हैं। अधिकांश चरणों के लिए जो सामान्य है वह run कीवर्ड है। यह विशेषता बताती है कि कौन सी कमांड निष्पादित करनी है।
✋ हमें दूसरे चरण की आवश्यकता है ताकि वर्चुअल एनवायरनमेंट gradle कमांड चला सके। इसके बिना, यह सक्षम नहीं होगा।
एप्लिकेशन पब्लिश करने के लिए GitHub Action कैसे बनाएं
एक बार जब आप पहली बार अपना एप्लिकेशन पब्लिश कर चुके होते हैं, तो इसे दोबारा पब्लिश करना एक काम जैसा हो जाता है।
आपको यह सुनिश्चित करना होगा कि संस्करण अपग्रेड हो गया है, APK बनाएं, इसे Google Play Console के माध्यम से सबमिट करें और अन्य थकाऊ कार्य।
हम इसे एक और GitHub एक्शन के साथ स्वचालित कर सकते हैं। यह एक्शन पिछले वाले की तुलना में थोड़ा अधिक जटिल है क्योंकि इसमें GitHub Secrets के उपयोग की आवश्यकता होती है।
संक्षेप में, GitHub Secrets आपके रिपॉजिटरी के एनवायरनमेंट वेरिएबल के रूप में संवेदनशील जानकारी संग्रहीत करने का एक तरीका है। हमें उनका उपयोग करने की आवश्यकता होगी क्योंकि:
- हमें अपने एप्लिकेशन पर हस्ताक्षर करने की आवश्यकता होगी
- हम इस एक्शन को अपने बिल्ट एप्लिकेशन को Google Play Store पर सबमिट करने की अनुमति देने जा रहे हैं
आइए जानें कि हम GitHub Secrets कैसे बना सकते हैं।
- अपने रिपॉजिटरी के मुख्य पेज पर, Settings टैब पर क्लिक करें

- बाएं हाथ के मेनू पर, Secrets नामक एक विकल्प होगा

- सीक्रेट बनाने के लिए, New repository secret बटन दबाएं

अब जब हमने इसे समझ लिया है, तो आइए एप्लिकेशन पब्लिश करने के लिए स्क्रिप्ट देखें:
name: Android Publish on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Set Up JDK uses: actions/setup-java@v1 with: java-version: 1.8 - name: Change wrapper permissions run: chmod +x ./gradlew - name: Run Tests run: ./gradlew test - name: Build Project run: ./gradlew build - name: Build Release AAB // 1 run: ./gradlew bundleRelease - name: Sign AAB // 2 uses: r0adkll/sign-android-release@v1 with: releaseDirectory: app/build/outputs/bundle/release signingKeyBase64: ${{ secrets.SIGN_KEY }} alias: ${{ secrets.ALIAS }} keyStorePassword: ${{ secrets.STORE_KEY_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Deploy to Play Store // 3 uses: r0adkll/upload-google-play@v1 with: serviceAccountJsonPlainText: ${{secrets.SERVICE_ACCOUNT}} packageName: com.tomerpacific.laundry releaseFiles: app/build/outputs/bundle/release/app-release.aab track: productionआपने देखा होगा कि यह एक्शन on workflow_dispatch पर चलेगा। इसका क्या मतलब है? मूल रूप से यह इस एक्शन को GitHub से मैन्युअली ट्रिगर करने की अनुमति देता है।
आप निश्चित रूप से तय कर सकते हैं कि आप इस एक्शन को मेन ब्रांच पर पुश होने पर चलाना पसंद करेंगे (उदाहरण के लिए)।
उपरोक्त स्निपेट में 1 से चिह्नित चरण हमारे एप्लिकेशन का .aab बनाने को ट्रिगर करता है। फिर, जैसे हम Android Studio के अंदर इसे बिल्ड करते समय करते हैं, हमें इस .aab फाइल पर हस्ताक्षर करने होंगे।
यह पहली बार है जब GitHub Secrets काम आते हैं। हमें सीक्रेट बनाने की आवश्यकता है:
- साइनिंग कुंजी के लिए (secrets.SIGN_KEY)
- कुंजी उपनाम के लिए (secrets.ALIAS)
- स्टोर कुंजी पासवर्ड के लिए (secrets.STORE_KEY_PASSWORD)
- कुंजी पासवर्ड के लिए (secrets.KEY_PASSWORD)
एक बार जब हम .aab फाइल पर हस्ताक्षर कर लेते हैं, तो हम इसे Google Play Store पर डेप्लॉय कर सकते हैं। इस चरण में थोड़ा और काम करना पड़ता है क्योंकि हमें इस GitHub Action को Google Play पर हमारे लिए एप्लिकेशन डेप्लॉय करने की अनुमति देनी होगी। लेकिन, रुकिए, हम ऐसा कैसे करते हैं? हम एक सर्विस अकाउंट का उपयोग करते हैं।
सर्विस अकाउंट कैसे बनाएं
एक सर्विस अकाउंट एक इकाई है जिसे आप बनाते हैं जो उन सेवाओं या एप्लिकेशन को बताता है जिनके साथ यह इंटरैक्ट करता है कि यह आपकी ओर से काम कर रहा है।
हमारे मामले में, हमारा GitHub Action Google Play Store के साथ इंटरैक्ट करेगा ताकि वह हमारे एप्लिकेशन का एक नया संस्करण अपलोड कर सके।
सर्विस अकाउंट बनाने के लिए, Google Cloud Console पर जाएं। यदि आपके पास वहां खाता नहीं है, तो एक बनाना सुनिश्चित करें। फिर, मुख्य पृष्ठ पर, बाएं हाथ के मेनू में, Service Accounts नामक एक सूची आइटम होगा।

एक बार जब आप उस पर क्लिक करते हैं, तो विंडो के दाहिने हिस्से में आप पहले से मौजूद सर्विस अकाउंट देखेंगे।
हम एक नया बनाना चाहते हैं और विंडो के ऊपरी हिस्से में ऐसा करने के लिए एक बटन है।

खुलने वाली विंडो में, आपको सर्विस का नाम दर्ज करना होगा और आप विवरण भी दर्ज कर सकते हैं।

यहां दिया गया नाम इस सर्विस अकाउंट का विशिष्ट पहचानकर्ता होगा।
दूसरे चरण में, आपसे इस सर्विस अकाउंट को एक भूमिका देने के लिए कहा जाएगा। Select A Role ड्रॉपडाउन से, Basic → Editor चुनें।

अंत में, तीसरे चरण में, "Grant users access to this service account" अनुभाग के तहत दोनों स्थानों पर अपना ईमेल भरें:

Done बटन दबाने के बाद, आपको इस सर्विस अकाउंट के लिए एक कुंजी बनाने की आवश्यकता होगी। एक्शन इस कुंजी का उपयोग Google Play द्वारा पहचाने जाने के लिए करेगा।
कुंजी बनाने के लिए, मुख्य सर्विस अकाउंट स्क्रीन पर Actions लेबल के नीचे तीन क्षैतिज बिंदुओं पर क्लिक करें। दिखाई देने वाले मेनू में, Manage keys चुनें।

इस विंडो में, हम New Key बटन चुनकर और दिखाई देने वाले मेनू से "Create new key" चुनकर एक कुंजी बनाएंगे।

अब हमारे पास अपने नए कुंजी का फॉर्मेट चुनने का विकल्प है – डिफ़ॉल्ट JSON है और हम इसे चुना छोड़ देंगे। Create पर क्लिक करें।

एक बार ऐसा करने पर, एक फाइल आपके कंप्यूटर पर डाउनलोड हो जाएगी। इस फाइल को सुरक्षित रखें क्योंकि इसमें आपके सर्विस अकाउंट के लिए सभी प्रासंगिक डेटा हैं और आप इसे फिर से डाउनलोड नहीं कर पाएंगे।
हम इस फाइल की सामग्री लेंगे और फिर इसके साथ एक GitHub सीक्रेट बनाएंगे (secrets.SERVICE_ACCOUNT)।
अंतिम लेकिन महत्वपूर्ण, हमें Google Play को इस सर्विस अकाउंट से अवगत कराने की आवश्यकता है। ऐसा करने के लिए हमें अपने Google Play Console खाते में लॉगिन करना होगा और Setup → API Access पर जाना होगा।
यदि आप पेज को नीचे स्क्रॉल करते हैं, तो आपको Service Accounts नामक एक अनुभाग दिखाई देगा। आपको पहले बनाया गया सर्विस अकाउंट देखना चाहिए। Grant Access लिंक पर क्लिक करें

खुलने वाली सेटिंग्स में, App permissions पर जाएं। यहां आप चुनेंगे कि यह सर्विस अकाउंट किस एप्लिकेशन के साथ इंटरैक्ट करता है।
Account permissions के तहत, releases अनुभाग के अंतर्गत सब कुछ चेक किया जाना चाहिए। मैं आपको अन्य सभी सेटिंग्स को देखने और स्वयं तय करने की सलाह देता हूं कि आप क्या चेक रखना चाहते हैं या क्या अनचेक करना चाहते हैं।
एक बार जब आप पूरा कर लें, तो नीचे दाएं कोने में स्थित Invite user बटन पर क्लिक करें।

आमंत्रण भेजे जाने के बाद, हम स्टोर पर पब्लिश करने के एक्शन को चला सकते हैं।
GitHub में अपने एक्शन की निगरानी कैसे करें
यह देखने के लिए कि आपके रिपॉजिटरी के लिए कौन से एक्शन परिभाषित हैं, Actions टैब पर क्लिक करें। यह टैब सभी परिभाषित वर्कफ़्लो और जो पहले ही चल चुके हैं, उन्हें प्रदर्शित करता है।

बाईं ओर आप उन सभी एक्शन को देख सकते हैं जो परिभाषित किए गए हैं और दाईं ओर आप उन सभी एक्शन को देख सकते हैं जो चल चुके हैं। यदि आप किसी विशिष्ट एक्शन को देखना चाहते हैं, तो आप उस पर क्लिक कर सकते हैं।

यदि एक्शन को workflow_dispatch पर चलाने के लिए परिभाषित किया गया है, तो आप उसे चलाने के लिए एक बटन देखेंगे (ऊपर की तस्वीर की तरह)।
यदि आप किसी वर्कफ़्लो के विशिष्ट रन को देखना चाहते हैं, तो आप मुख्य वर्कफ़्लो पेज से उस रन पर क्लिक करके भी ऐसा कर सकते हैं। यदि कोई एक्शन चलने में विफल रहता है, तो यह जांचने और यह देखने की जगह होगी कि क्या गलत हुआ।
हमारा पहला एक्शन पुल रिक्वेस्ट खोले जाने पर ट्रिगर होना चाहिए। यदि यह सही ढंग से काम करता है, तो आपको यह देखना चाहिए:

और बस!
समापन
यह अब तक एक लंबा पढ़ना रहा है, लेकिन हमने वह सब कुछ देखा है जो आपको अपने एप्लिकेशन के लिए Continuous Integration और Continuous Deployment पाइपलाइन बनाने शुरू करने के लिए आवश्यक है।
यदि आप यह देखने में रुचि रखते हैं कि GitHub Actions कैसे सेट अप किए जाते हैं, तो आप उन्हें मेरे एक रिपॉजिटरी में यहां देख सकते हैं:
Actions · TomerPacific/LaundrySymbolsKotlin में लिखा गया एक एप्लिकेशन जो विभिन्न लॉन्ड्री प्रतीकों को स्पष्टीकरण के साथ दिखाता है :cyclone: - Actions · TomerPacific/LaundrySymbols
TomerPacificGitHub
GitHub Actions के बारे में अधिक पढ़ने के लिए, यहां जाएं:
GitHub Actions Documentation - GitHub Docsअपने रिपॉजिटरी में सीधे सॉफ़्टवेयर डेवलपमेंट वर्कफ़्लो को स्वचालित, अनुकूलित और निष्पादित करें GitHub Actions के साथ। आप किसी भी कार्य को करने के लिए एक्शन खोज, बना और साझा कर सकते हैं, जिसमें CI/CD शामिल है, और पूरी तरह से अनुकूलित वर्कफ़्लो में एक्शन को जोड़ सकते हैं।
GitHub Docs