অনেক পুনরাবৃত্তিমূলক কাজ আছে যা আমাদের প্রতিদিন করতে হয়। এবং তারা কিছুটা বিরক্তিকর, কঠিন এবং একঘেয়ে হতে পারে।
কিন্তু সেইসব দৈনন্দিন কাজে শ্রম দেওয়ার পরিবর্তে, আপনি তাদের অর্পণ করতে পারেন যাতে কেউ বা অন্য কিছু আপনার জন্য সেগুলি করে। এইভাবে, আপনি যা করতে চান তা করার জন্য আপনার কাছে আরও সময় থাকতে পারে। আপনি আরাম করার সময় পেতে পারেন।
আপনি যদি কখনও একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করে থাকেন তবে আপনি জানেন যে কিছু কাজ কতটা ক্লান্তিকর হতে পারে:
- পরীক্ষা চলছে
- নতুন কোড মার্জ করার সময় অ্যাপ্লিকেশানটি কম্পাইল হয়েছে তা নিশ্চিত করুন
- অ্যাপ্লিকেশন তৈরি ও প্রকাশ করা।
তাহলে আমরা কার কাছে এই কাজগুলো দিয়ে যাব? অন্য সহকর্মী? তারা কেবল এটি অন্য কারও কাছে প্রেরণ করতে পারে এবং এটি কারও সময় খালি করবে না। এছাড়াও, আমরা আমাদের সহকর্মীদের আউট করতে চাই না। সমাধান?
GitHub অ্যাকশনে হ্যালো বলুন। 👐
GitHub অ্যাকশন কি?
GitHub অ্যাকশন হল কমান্ড যা আমরা ট্রিগার করতে পারি যখন আমাদের সংগ্রহস্থলে কিছু ঘটে। এর মূলে, একটি অ্যাকশন হল একটি কনফিগারেশন ফাইল যাতে কমান্ডের একটি তালিকা থাকে যা বর্ণনা করে:
- কি ঘটতে হবে
- যখন এটা হওয়া উচিত
এই কনফিগারেশন ফাইলটি YAML ফরম্যাটে (.yml) এবং একটি উদাহরণ এই রকম দেখাচ্ছে:
name: My GitHub Action
on: pull_request
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
আসুন উপরের উদাহরণটি ভেঙে দেওয়া যাক:
- আমরা আমাদের ক্রিয়াকে একটি নাম দিই (আমার গিটহাব অ্যাকশন) [ঐচ্ছিক]
- আমরা নির্দেশ করি কখন এই ক্রিয়াটি চালানো উচিত (যখন একটি টান অনুরোধ খোলা হয়)
- আমরা কাজগুলির একটি তালিকা শুরু করি যেগুলি একবার এই ক্রিয়াটি ট্রিগার হওয়ার পরে ঘটতে হবে
- প্রথমটি হল একটি বিল্ড কর্ম
- রান-অন কমান্ড GitHub কে বলে যে কোন রানার এই কাজটি চালাবে (এটি একটি ভার্চুয়াল সার্ভার এবং আপনি Windows/Mac/Linux এর মধ্যে বেছে নিতে পারেন)
- প্রতিটি কাজের অনেকগুলি পর্যায় থাকতে পারে যা পদক্ষেপ দ্বারা একত্রিত করা হয় কীওয়ার্ড
- ব্যবহার করে কীওয়ার্ড স্ক্রিপ্টকে বলে যে কোন ক্রিয়াটি কার্যকর করতে হবে
এটি একটি খুব সংক্ষিপ্ত উদাহরণ যা গিটহাব অ্যাকশনের সমস্ত বৈশিষ্ট্য প্রদর্শন করে না, তবে এটি কনফিগারেশন ফাইলের কাঠামোর মধ্যে একটি উঁকি দেয়।
পরবর্তী বিভাগগুলিতে, আমরা এমন পদক্ষেপ তৈরি করব যা আমাদের উন্নয়ন চক্রকে দক্ষ এবং কার্যকর রাখতে সাহায্য করবে৷
মনে রাখবেন যে সমস্ত GitHub অ্যাকশন ফাইলগুলিকে আপনার প্রকল্পের মূল ফোল্ডারের নীচে -এর মধ্যে থাকতে হবে .github/workflows :

কিভাবে পুল অনুরোধের জন্য একটি গিটহাব অ্যাকশন তৈরি করবেন
আপনি একা একটি প্রকল্পে কাজ করছেন বা একটি দলের অংশ, আপনার আবেদন স্থিতিশীল তা নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ। সুতরাং আপনার অ্যাপ্লিকেশনটি সঠিকভাবে কম্পাইল হচ্ছে এবং আপনি যখনই একটি পুল অনুরোধ একত্রিত করার কথা বিবেচনা করবেন তখন সমস্ত পরীক্ষা পাস হচ্ছে তা নিশ্চিত করার জন্য এটি সম্পূর্ণ বোধগম্য।
আমরা ইতিমধ্যে আমাদের উদাহরণে দেখিয়েছি কিভাবে আমরা আমাদের সংগ্রহস্থলে কোড চেকআউট করতে পারি। এই কর্মে, আমরা নিম্নলিখিত পদক্ষেপগুলি অন্তর্ভুক্ত করব:
- 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
আপনি দেখতে পারেন যে উপরে, প্রতিটি ধাপের নিজস্ব বৈশিষ্ট্য এবং বৈশিষ্ট্য রয়েছে যা এটির জন্য নির্দিষ্ট।
আমি তাদের প্রতিটিতে যাব না, যেহেতু আপনি ডকুমেন্টেশনের মাধ্যমে নিজেরাই এটি করতে পারেন। বেশিরভাগ ধাপে যা সাধারণ তা হল চালান কীওয়ার্ড এই বৈশিষ্ট্যটি নির্দেশ করে যে কোন কমান্ডটি কার্যকর করতে হবে।
✋ আমাদের দ্বিতীয় ধাপের প্রয়োজন যাতে ভার্চুয়াল পরিবেশ গ্রেডল কমান্ড চালাতে পারে। এটি ছাড়া, এটি সক্ষম হবে না।
একটি অ্যাপ্লিকেশন প্রকাশের জন্য কীভাবে একটি গিটহাব অ্যাকশন তৈরি করবেন
একবার আপনি প্রথমবার আপনার আবেদন প্রকাশ করলে, এটি পুনঃপ্রকাশ করা অনেকটা কাজের মতো হয়ে যায়।
আপনাকে নিশ্চিত করতে হবে যে সংস্করণটি আপগ্রেড হয়েছে, APK তৈরি করতে হবে, Google Play কনসোলের মাধ্যমে জমা দিতে হবে এবং অন্যান্য ক্লান্তিকর কাজগুলি করতে হবে৷
আমরা এই প্রক্রিয়াটিকে অন্য গিটহাব অ্যাকশন দিয়ে স্বয়ংক্রিয় করতে পারি। এই ক্রিয়াটি আগেরটির চেয়ে একটু বেশি জটিল কারণ এটির জন্য গিটহাব সিক্রেটস ব্যবহার করা প্রয়োজন৷
সংক্ষেপে, গিটহাব সিক্রেটস হল আপনার সংগ্রহস্থলের পরিবেশ ভেরিয়েবল হিসাবে সংবেদনশীল তথ্য সংরক্ষণ করার একটি উপায়। আমাদের সেগুলি ব্যবহার করতে হবে কারণ:
- আমাদের আবেদনে স্বাক্ষর করতে হবে
- আমরা Google Play Store-এ আমাদের তৈরি অ্যাপ্লিকেশন জমা দেওয়ার জন্য এই অ্যাকশনের অনুমতি দিতে যাচ্ছি
আসুন জেনে নেই কিভাবে আমরা প্রথমে গিটহাব সিক্রেট তৈরি করতে পারি।
- আপনার সংগ্রহস্থলের মূল পৃষ্ঠার ভিতরে, সেটিংস -এ ক্লিক করুন ট্যাব

- বাম দিকের মেনুতে, সিক্রেটস শিরোনামের একটি বিকল্প থাকবে

- একটি গোপনীয়তা তৈরি করতে, নতুন সংগ্রহস্থল গোপন টিপুন বোতাম

এখন যেহেতু আমরা এটিকে হারিয়ে ফেলেছি, আসুন একটি অ্যাপ্লিকেশন প্রকাশের স্ক্রিপ্টটি দেখি:
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
আপনি হয়তো লক্ষ্য করেছেন যে এই ক্রিয়াটি ওয়ার্কফ্লো_ডিসপ্যাচ-এ চলবে৷ . ওটার মানে কি? মূলত এটি এই ক্রিয়াটি গিটহাব থেকে ম্যানুয়ালি ট্রিগার করার অনুমতি দেয়।
আপনি অবশ্যই সিদ্ধান্ত নিতে পারেন যে আপনি প্রধান শাখায় (উদাহরণস্বরূপ) ধাক্কা দিলে আপনি এই ক্রিয়াটি চালাবেন।
উপরের স্নিপেটে 1 দিয়ে চিহ্নিত ধাপটি আমাদের অ্যাপ্লিকেশনের একটি .aab তৈরি করতে ট্রিগার করে। তারপর, আমরা যেমনটি করব যদি আমরা এটিকে অ্যান্ড্রয়েড স্টুডিওতে তৈরি করি, আমাদের এই .aab ফাইলটিতে স্বাক্ষর করতে হবে।
এই প্রথম GitHub সিক্রেটস খেলায় আসে. আমাদের এর জন্য গোপনীয়তা তৈরি করতে হবে:
- দ্যা সাইনিং কী (গোপন কথা।SIGN_KEY)
- কী উপনাম (সিক্রেটস।ALIAS)
- স্টোর কী পাসওয়ার্ড (গোপন কথা।STORE_KEY_PASSWORD)
- কী পাসওয়ার্ড (গোপন। KEY_PASSWORD)
একবার আমরা .aab ফাইলে স্বাক্ষর করার পর আমরা এটিকে Google Play Store এ স্থাপন করতে পারি। এই ধাপে আরও কিছু কাজ করতে হবে যেহেতু আমাদের এই GitHub অ্যাকশনকে Google Play-তে আমাদের জন্য অ্যাপ্লিকেশন স্থাপন করার অনুমতি দিতে হবে। কিন্তু, অপেক্ষা করুন, আমরা কীভাবে তা করব? আমরা একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করি৷
৷কিভাবে একটি পরিষেবা অ্যাকাউন্ট তৈরি করবেন
একটি পরিষেবা অ্যাকাউন্ট হল এমন একটি সত্তা যা আপনি তৈরি করেন যা বলে যে পরিষেবাগুলি বা অ্যাপ্লিকেশনগুলির সাথে এটি ইন্টারঅ্যাক্ট করে যে এটি আপনার পক্ষে কাজ করছে৷
আমাদের ক্ষেত্রে, আমাদের গিটহাব অ্যাকশন গুগল প্লে স্টোরের সাথে ইন্টারঅ্যাক্ট করতে যাচ্ছে যাতে এটি আমাদের অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ আপলোড করতে পারে।
একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে, Google ক্লাউড কনসোলে যান৷ আপনার যদি সেখানে কোনও অ্যাকাউন্ট না থাকে তবে একটি তৈরি করতে ভুলবেন না। তারপর, প্রধান পৃষ্ঠায়, বাম দিকের মেনুতে, পরিষেবা অ্যাকাউন্ট শিরোনামের একটি তালিকা আইটেম থাকবে৷

একবার আপনি এটিতে ক্লিক করলে, উইন্ডোর ডানদিকে আপনি আপনার ইতিমধ্যে থাকা যেকোনো পরিষেবা অ্যাকাউন্ট দেখতে পাবেন।
আমরা একটি নতুন তৈরি করতে চাই এবং উইন্ডোর উপরের অংশে এটি করার জন্য একটি বোতাম রয়েছে৷
৷
যে উইন্ডোটি খোলে, সেখানে আপনাকে পরিষেবার নাম লিখতে হবে এবং আপনি একটি বিবরণও লিখতে পারেন৷

এখানে দেওয়া নামটি এই পরিষেবা অ্যাকাউন্টের অনন্য শনাক্তকারী হবে।
দ্বিতীয় ধাপে আপনাকে এই পরিষেবা অ্যাকাউন্টটিকে একটি ভূমিকা দিতে বলা হবে। একটি ভূমিকা নির্বাচন করুন থেকে ড্রপডাউন, মৌলিক → সম্পাদক নির্বাচন করুন।

অবশেষে, তৃতীয় ধাপে, "এই পরিষেবা অ্যাকাউন্টে ব্যবহারকারীদের অ্যাক্সেস দিন" বিভাগের অধীনে উভয় জায়গায় আপনার ইমেলটি পূরণ করুন:

সম্পন্ন বোতাম টিপানোর পরে, আপনাকে এই পরিষেবা অ্যাকাউন্টের জন্য একটি কী তৈরি করতে হবে। ক্রিয়াটি Google Play দ্বারা চিহ্নিত করার জন্য এই কী ব্যবহার করবে৷
কী তৈরি করতে, প্রধান পরিষেবা অ্যাকাউন্ট স্ক্রিনে অ্যাকশন লেবেলের অধীনে তিনটি অনুভূমিক বিন্দুতে ক্লিক করুন। প্রদর্শিত মেনুতে, কী পরিচালনা করুন নির্বাচন করুন৷ .

এই উইন্ডোতে, আমরা নতুন কী নির্বাচন করে একটি কী তৈরি করব বোতাম এবং প্রদর্শিত মেনু থেকে "নতুন কী তৈরি করুন" নির্বাচন করুন৷
৷
এখন আমাদের কাছে আমাদের নতুন কী-এর বিন্যাস বেছে নেওয়ার বিকল্প আছে - ডিফল্ট হল JSON এবং আমরা এটিকে নির্বাচিত রেখে দেব। তৈরি করুন ক্লিক করুন৷
৷
একবার আপনি এটি করার পরে, একটি ফাইল আপনার কম্পিউটারে ডাউনলোড করা হবে। এই ফাইলটি রাখা নিশ্চিত করুন কারণ এতে আপনার পরিষেবা অ্যাকাউন্টের জন্য প্রাসঙ্গিক সমস্ত ডেটা রয়েছে এবং আপনি এটি আবার ডাউনলোড করতে পারবেন না।
আমরা এই ফাইলের বিষয়বস্তু নেব এবং তারপর এটি দিয়ে একটি গিটহাব সিক্রেট তৈরি করব (secrets.SERVICE_ACCOUNT )।
শেষ কিন্তু অন্তত নয়, আমাদের এই পরিষেবা অ্যাকাউন্ট সম্পর্কে Google Play কে সচেতন করতে হবে। এটি করার জন্য আমাদের Google Play Console অ্যাকাউন্টে লগইন করতে হবে এবং সেটআপ →API অ্যাক্সেস-এ যেতে হবে। .
আপনি যদি পৃষ্ঠাটি নীচে স্ক্রোল করেন তবে আপনি পরিষেবা অ্যাকাউন্ট শিরোনামের একটি বিভাগ দেখতে পাবেন। আপনি আগে তৈরি করা পরিষেবা অ্যাকাউন্ট দেখতে সক্ষম হওয়া উচিত। গ্রান্ট অ্যাক্সেস লিঙ্কে ক্লিক করুন

খোলা সেটিংসে, অ্যাপের অনুমতিগুলিতে যান। এই পরিষেবা অ্যাকাউন্টটি কোন অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করবে তা এখানে আপনি চয়ন করবেন৷
অ্যাকাউন্ট অনুমতির অধীনে, রিলিজ এর অধীনে সবকিছু বিভাগ চেক করা উচিত। আমি আপনাকে অন্যান্য সমস্ত সেটিংস দেখতে এবং আপনি কী চেক করা ছেড়ে দিতে চান বা কী চেক বন্ধ করতে চান তা নিজেই সিদ্ধান্ত নেওয়ার পরামর্শ দিচ্ছি।
একবার আপনার হয়ে গেলে, ব্যবহারকারীকে আমন্ত্রণ জানান ক্লিক করুন৷ নীচের ডান কোণায় অবস্থিত বোতাম৷
৷
আমন্ত্রণ পাঠানোর পরে, আমরা কাজ সঞ্চয় করার জন্য প্রকাশনা চালাতে পারি।
কিভাবে গিটহাবে আমাদের ক্রিয়াকলাপ নিরীক্ষণ করা যায়
আপনার সংগ্রহস্থলের জন্য কোন ক্রিয়াগুলি সংজ্ঞায়িত করা হয়েছে তা দেখতে, অ্যাকশন ট্যাবে ক্লিক করুন৷ এই ট্যাবটি সংজ্ঞায়িত সমস্ত কর্মপ্রবাহ প্রদর্শন করে এবং যেগুলি ইতিমধ্যেই চলছে৷
৷
বাম দিকে আপনি সংজ্ঞায়িত সমস্ত অ্যাকশন দেখতে পাবেন এবং ডান দিকে আপনি চালানো হয়েছে এমন সমস্ত অ্যাকশন দেখতে পাবেন। আপনি যদি একটি নির্দিষ্ট ক্রিয়া দেখতে চান, আপনি এটিতে ক্লিক করতে পারেন৷

যদি কর্মটি ওয়ার্কফ্লো_ডিসপ্যাচ-এ চালানোর জন্য সংজ্ঞায়িত করা হয় , আপনি একটি বোতাম দেখতে পাবেন যা আপনাকে এটি চালাতে সক্ষম করবে (উপরের ছবির মতো)।
আপনি যদি একটি ওয়ার্কফ্লো-এর একটি নির্দিষ্ট রান দেখতে চান, তাহলে আপনি মূল ওয়ার্কফ্লো পৃষ্ঠা থেকে রানগুলির একটিতে ক্লিক করে সেটিও করতে পারেন। যদি কোনো একটি ক্রিয়া চলতে ব্যর্থ হয়, তাহলে এটি তদন্ত করার এবং কী ভুল হয়েছে তা দেখতে হবে।
একটি টান অনুরোধ খোলা হলে আমাদের প্রথম অ্যাকশনটি ট্রিগার হওয়ার কথা। যদি এটি সঠিকভাবে কাজ করে, তাহলে আপনি এটি দেখতে পাবেন:

এবং সেখানে আপনার এটি আছে!
র্যাপিং আপ
এই বিন্দু পর্যন্ত এটি একটি দীর্ঘ পঠিত হয়েছে, কিন্তু আমরা আপনার অ্যাপ্লিকেশনের জন্য একটি অবিচ্ছিন্ন একীকরণ এবং ক্রমাগত স্থাপনার পাইপলাইন তৈরি করা শুরু করার জন্য যা যা প্রয়োজন তার মধ্য দিয়ে চলেছি।
আপনি যদি গিটহাব অ্যাকশনগুলি কীভাবে সেট আপ করা হয় তা দেখতে আগ্রহী হন, আপনি এখানে আমার সংগ্রহস্থলগুলির একটিতে সেগুলি পরীক্ষা করতে পারেন:
অ্যাকশন · TomerPacific/Laundry Symbolsকোটলিনে লেখা একটি অ্যাপ্লিকেশন যা একটি ব্যাখ্যা সহ বিভিন্ন লন্ড্রি প্রতীক দেখাচ্ছে :সাইক্লোন:- অ্যাকশন · TomerPacific/Laundry Symbols

GitHub অ্যাকশন সম্পর্কে আরও পড়তে, এখানে যান:
গিটহাব অ্যাকশন ডকুমেন্টেশন - গিটহাব অ্যাকশনগুলির সাথে আপনার সফ্টওয়্যার ডেভেলপমেন্ট ওয়ার্কফ্লোগুলিকে অটোমেট, কাস্টমাইজ এবং কার্যকর করুন। আপনি CI/CD সহ আপনার পছন্দসই যেকোন কাজ সম্পাদন করতে এবং একটি সম্পূর্ণ কাস্টমাইজড ওয়ার্কফ্লোতে ক্রিয়াগুলিকে একত্রিত করতে আপনি আবিষ্কার করতে, তৈরি করতে এবং ভাগ করতে পারেন৷
