অ্যাপস স্ক্রিপ্ট এডিটরের পরিবর্তে আপনার টার্মিনাল থেকে গুগল অ্যাপস স্ক্রিপ্ট প্রোজেক্ট তৈরি ও পরিচালনা করতে, ওপেন-সোর্স টুল clasp ব্যবহার করুন।
clasp কোডল্যাবটি clasp সকল বৈশিষ্ট্যের একটি সংক্ষিপ্ত বিবরণ প্রদান করে।
বৈশিষ্ট্য
clasp নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত রয়েছে:
স্থানীয়ভাবে বিকাশ করুন
clasp আপনাকে আপনার Apps Script প্রোজেক্টগুলো স্থানীয়ভাবে তৈরি করতে দেয়। আপনার নিজের কম্পিউটারে কোড লিখুন এবং কাজ শেষ হলে Apps Script-এ আপলোড করুন। এছাড়াও, আপনি বিদ্যমান Apps Script প্রোজেক্টগুলো ডাউনলোড করে অফলাইনে সম্পাদনা করতে পারেন। Apps Script প্রোজেক্ট বিল্ড করার সময় git মতো আপনার পছন্দের ডেভেলপমেন্ট টুল ব্যবহার করুন।
ডেপ্লয়মেন্ট সংস্করণগুলি পরিচালনা করুন
আপনার প্রোজেক্টের একাধিক ডেপ্লয়মেন্ট তৈরি করুন, আপডেট করুন এবং দেখুন।
কাঠামো কোড
clasp আপনাকে আপনার কোড ডিরেক্টরিতে সাজাতে দেয়, যা script.google.com-এ আপলোড করার সময়ও সংরক্ষিত থাকে। উদাহরণস্বরূপ:
# On script.google.com: ├── tests/slides.gs └── tests/sheets.gs # Locally: ├── tests/ │ ├─ slides.gs │ └─ sheets.gs
প্রকল্পের প্রকারভেদ
আপনি স্বতন্ত্র এবং কন্টেইনার-ভিত্তিক উভয় ধরনের স্ক্রিপ্ট প্রজেক্ট পরিচালনা করতে clasp ব্যবহার করতে পারেন।
স্বতন্ত্র প্রকল্প
একটি স্বতন্ত্র প্রজেক্ট আপনার গুগল ড্রাইভে একটি আলাদা ফাইল হিসেবে দেখা যায়। আপনি clasp create কমান্ড ব্যবহার করে একটি নতুন স্বতন্ত্র স্ক্রিপ্ট তৈরি করতে পারেন।
কন্টেইনার-ভিত্তিক প্রকল্পগুলি
একটি কন্টেইনার-বাউন্ড প্রজেক্ট একটি গুগল ডক্স, শীটস, স্লাইডস, বা গুগল ফর্মস ফাইলের সাথে সংযুক্ত থাকে। আপনি clasp create কমান্ড ব্যবহার করে একটি নতুন ফাইলের সাথে সংযুক্ত একটি নতুন কন্টেইনার-বাউন্ড স্ক্রিপ্ট তৈরি করতে পারেন। এছাড়াও, আপনি --parentId ফ্ল্যাগ ব্যবহার করে একটি বিদ্যমান ফাইলের সাথে নতুন স্ক্রিপ্ট সংযুক্ত করতে পারেন।
অন্যান্য প্রকল্পের ধরণ
clasp ওয়েব অ্যাপ এবং এপিআই-এর জন্য স্ক্রিপ্ট তৈরি করাও সমর্থন করে।
প্রয়োজনীয়তা
clasp Node.js- এ লেখা এবং npm টুল ব্যবহার করে বিতরণ করা হয়। clasp ব্যবহার করার আগে, আপনার অবশ্যই Node.js সংস্করণ 20.0.0 বা তার পরবর্তী সংস্করণ ইনস্টল করা থাকতে হবে। Node.js ইনস্টল করার জন্য প্রশাসনিক অধিকার প্রয়োজন।
ইনস্টলেশন
Node.js ইনস্টল করার পরে, clasp ইনস্টল করতে নিম্নলিখিত npm কমান্ডটি ব্যবহার করুন:
npm install @google/clasp -g
ইনস্টলেশনের পরে, আপনার কম্পিউটারের যেকোনো ডিরেক্টরি থেকে clasp কমান্ডটি ব্যবহার করুন।
clasp ব্যবহার করুন
কমান্ড লাইন থেকে বিভিন্ন ধরনের কাজ সম্পাদন করতে clasp ব্যবহার করুন। এই বিভাগে clasp ব্যবহার করে ডেভেলপ করার সময় ব্যবহৃত সাধারণ অপারেশনগুলো বর্ণনা করা হয়েছে।
লগইন
এই কমান্ডটি আপনার গুগল অ্যাকাউন্টের অ্যাপস স্ক্রিপ্ট প্রজেক্টগুলোতে লগ ইন করে এবং সেগুলোর ব্যবস্থাপনার অনুমোদন দেয়। এটি চালানোর পর, আপনাকে সেই গুগল অ্যাকাউন্টে সাইন ইন করতে বলা হবে যেখানে আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টগুলো সংরক্ষিত আছে।
clasp login
লগআউট
এই কমান্ডটি কমান্ড-লাইন টুল থেকে লগ আউট করে। clasp ব্যবহার চালিয়ে যাওয়ার আগে Google-এর সাথে পুনরায় প্রমাণীকরণের জন্য clasp login ব্যবহার করে আবার লগইন করুন।
clasp logout
একটি নতুন অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন
এই কমান্ডটি বর্তমান ডিরেক্টরিতে একটি ঐচ্ছিক স্ক্রিপ্ট শিরোনাম সহ একটি নতুন স্ক্রিপ্ট তৈরি করে।
clasp create [scriptTitle] [--type <projectType>] [--parentId <parentId>]
এই কমান্ডটি নিম্নলিখিত ঐচ্ছিক প্যারামিটারগুলো ব্যবহার করে:
-
scriptTitle: স্ক্রিপ্ট প্রজেক্টের শিরোনাম। -
--type <projectType>: যে ধরনের প্রজেক্ট তৈরি করতে চান। অনুমোদিত মানগুলো হলোstandalone,docs,sheets,slides,forms,webapp, এবংapi। -
--parentId <parentId>: বিদ্যমান গুগল ড্রাইভ ফাইলের (ডক্স, শীটস, স্লাইডস, বা ফর্মস) আইডি, যার সাথে নতুন স্ক্রিপ্ট প্রজেক্টটি সংযুক্ত করা হবে।
এই কমান্ডটি বর্তমান ডিরেক্টরিতে দুটি ফাইলও তৈরি করে:
- একটি
.clasp.jsonফাইল যেখানে স্ক্রিপ্ট আইডি সংরক্ষিত থাকে। -
appsscript.jsonনামের একটি প্রজেক্ট ম্যানিফেস্ট ফাইল, যাতে প্রজেক্টের মেটাডেটা থাকে।
একটি বিদ্যমান প্রজেক্ট ক্লোন করুন
এই কমান্ডটি বর্তমান ডিরেক্টরিতে থাকা একটি প্রজেক্ট ক্লোন করে। স্ক্রিপ্টটি অবশ্যই তৈরি করা থাকতে হবে অথবা আপনার গুগল অ্যাকাউন্টের সাথে শেয়ার করা থাকতে হবে। আপনি যে স্ক্রিপ্ট প্রজেক্টটি ক্লোন করতে চান, তার স্ক্রিপ্ট আইডি দিয়ে তা নির্দিষ্ট করে দেন। আপনি স্বতন্ত্র এবং কন্টেইনার-ভিত্তিক উভয় ধরনের প্রজেক্টই ক্লোন করতে পারেন।
প্রজেক্টটির স্ক্রিপ্ট আইডি খুঁজে বের করতে:
- অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলুন।
- বাম দিকে, প্রজেক্ট ক্লিক করুন।
ID-এর অধীনে, স্ক্রিপ্ট আইডি-টি কপি করুন।
ক্ল্যাসপ ক্লোন
একটি স্ক্রিপ্ট প্রজেক্ট ডাউনলোড করুন
এই কমান্ডটি গুগল ড্রাইভ থেকে অ্যাপস স্ক্রিপ্ট প্রজেক্টটি আপনার কম্পিউটারের ফাইল সিস্টেমে ডাউনলোড করে।
clasp pull
একটি স্ক্রিপ্ট প্রজেক্ট আপলোড করুন
এই কমান্ডটি আপনার কম্পিউটার থেকে একটি স্ক্রিপ্ট প্রজেক্টের সমস্ত ফাইল ড্রাইভে আপলোড করে।
clasp push
প্রকল্পের সংস্করণগুলির তালিকা
এই কমান্ডটি একটি স্ক্রিপ্ট প্রজেক্টের প্রতিটি ভার্সনের নম্বর এবং বিবরণ তালিকাভুক্ত করে।
clasp versions
একটি প্রকাশিত প্রকল্প স্থাপন করুন
স্ক্রিপ্ট প্রজেক্টগুলোকে ওয়েব অ্যাপ, গুগল ওয়ার্কস্পেস অ্যাড-অন বা এক্সিকিউটেবল হিসেবে ডেপ্লয় করুন। স্ক্রিপ্ট এডিটরে, প্রজেক্ট ম্যানিফেস্টে অথবা clasp ব্যবহার করে ডেপ্লয়মেন্ট তৈরি করুন।
clasp ব্যবহার করে একটি প্রজেক্ট ডিপ্লয় করতে, প্রথমে Apps Script প্রজেক্টটির একটি অপরিবর্তনীয় (immutable) ভার্সন তৈরি করুন। একটি ভার্সন হলো একটি স্ক্রিপ্ট প্রজেক্টের 'স্ন্যাপশট' এবং এটি একটি রিড-অনলি ব্রাঞ্চড রিলিজের অনুরূপ।
clasp version [description]
এই কমান্ডটি নতুন তৈরি হওয়া ভার্সন নম্বরটি প্রদর্শন করে। আপনার প্রোজেক্টের ইনস্ট্যান্সগুলো ডেপ্লয় এবং আনডেপ্লয় করতে এই নম্বরটি ব্যবহার করুন:
clasp deploy [version] [description]
clasp undeploy <deploymentId>
এই কমান্ডটি একটি বিদ্যমান ডেপ্লয়মেন্টকে নতুন সংস্করণ এবং বিবরণ দিয়ে আপডেট করে:
clasp redeploy <deploymentId> <version> <description>
তালিকা স্থাপন
এই কমান্ডটি স্ক্রিপ্ট প্রজেক্টের ডিপ্লয়মেন্ট আইডি, ভার্সন এবং তাদের বিবরণ তালিকাভুক্ত করে।
clasp deployments
অ্যাপস স্ক্রিপ্ট এডিটরে প্রজেক্টটি খুলুন।
এই কমান্ডটি অ্যাপস স্ক্রিপ্ট এডিটরে একটি স্ক্রিপ্ট প্রজেক্ট খোলে। এডিটরটি আপনার ডিফল্ট ওয়েব ব্রাউজারে একটি নতুন ট্যাব হিসেবে চালু হয়।
clasp open-script
clasp ওপেন-সোর্স প্রকল্পে অবদান রাখুন
গিটহাবে clasp এ অবদান রাখুন।
clasp এবং GitHub Actions ব্যবহার করে অ্যাপের জন্য CI/CD স্ক্রিপ্ট
এই নির্দেশিকায় clasp এবং GitHub Actions ব্যবহার করে Google Apps Script প্রোজেক্টের জন্য স্বয়ংক্রিয় লিন্টিং, টেস্টিং এবং ডিপ্লয়মেন্ট সেট আপ করার পদ্ধতি আলোচনা করা হয়েছে।
১. পূর্বশর্তসমূহ
শুরু করার আগে, 'প্রয়োজনীয়তা' অংশে দেওয়া সেটআপ ধাপগুলো সম্পূর্ণ করুন।
আপনার আরও প্রয়োজন:
- একটি গিটহাব রিপোজিটরি।
- অ্যাপস স্ক্রিপ্ট এপিআই
script.google.com/home/usersettingsএ সক্রিয় করা হয়েছে।
২. CI-তে প্রমাণীকরণ
যেহেতু CI রানাররা OAuth-এর জন্য ব্রাউজার খুলতে পারে না, তাই আপনি ক্রেডেনশিয়ালগুলো GitHub Secrets হিসেবে সংরক্ষণ করেন:
| গোপন | মূল্য |
|---|---|
CLASPRC_JSON | ~/.clasprc.json ফাইলের বিষয়বস্তু ( clasp login দ্বারা তৈরি) |
CLASP_JSON | .clasp.json ফাইলের বিষয়বস্তু (আপনার স্ক্রিপ্ট আইডি ম্যাপিং) |
.clasprc.json ফাইলে থাকা রিফ্রেশ টোকেনটি আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টগুলোতে অ্যাক্সেস দেয়। এটিকে একটি সংবেদনশীল ক্রেডেনশিয়াল হিসেবে বিবেচনা করুন এবং পর্যায়ক্রমে এটি পরিবর্তন করুন।
আপনার .gitignore এ .clasprc.json এবং .clasp.json দুটি যোগ করুন। এগুলিতে ক্রেডেনশিয়াল থাকে এবং এগুলো কখনোই কমিট করা উচিত নয়।
৩. CI ওয়ার্কফ্লো — PR-গুলিতে লিন্ট এবং টেস্ট
.github/workflows/ci.yml :
name: CI
on:
pull_request:
branches: [main]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.3
- uses: actions/setup-node@v6.3
with:
node-version: "20"
cache: npm
- run: npm ci
- run: npm run lint
৪. সিডি ওয়ার্কফ্লো — মার্জ করার সময় ডিপ্লয় করুন
.github/workflows/deploy.yml :
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- run: npm ci
- run: npm run lint && npm test
- name: Setup clasp credentials
run: |
echo '${{ secrets.CLASPRC_JSON }}' > ~/.clasprc.json
echo '${{ secrets.CLASP_JSON }}' > .clasp.json
- name: Push and version
run: |
npx @google/clasp push --force
npx @google/clasp version "$(git rev-parse --short HEAD)"
--force ফ্ল্যাগটি কোনো নিশ্চিতকরণ ছাড়াই রিমোট কোড ওভাররাইট করে। একবার এই পাইপলাইনটি চালু হয়ে গেলে, অ্যাপস স্ক্রিপ্ট এডিটরে ম্যানুয়াল সম্পাদনা এড়িয়ে চলুন — রিপোজিটরিটিই তথ্যের একমাত্র নির্ভরযোগ্য উৎস হয়ে ওঠে।
৫. একাধিক পরিবেশে স্থাপন
আলাদা ডেভ/স্টেজিং/প্রোডাকশন এনভায়রনমেন্টের জন্য, প্রতিটির জন্য একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং তাদের কনফিগারেশনগুলো আলাদা সিক্রেট ( CLASP_JSON_DEV , CLASP_JSON_STAGING , CLASP_JSON_PROD ) হিসেবে সংরক্ষণ করুন। ওয়ার্কফ্লোতে, যে ব্রাঞ্চটি ডিপ্লয় করা হচ্ছে তার উপর ভিত্তি করে .clasp.json ফাইলে উপযুক্ত সিক্রেটটি লিখুন।
সমস্যা সমাধান
| ত্রুটি | ঠিক করুন |
|---|---|
| স্ক্রিপ্ট এপিআই সক্রিয় করা হয়নি | script.google.com/home/usersettings এ সক্রিয় করুন |
| "৪০১ অননুমোদিত" | স্থানীয়ভাবে clasp login পুনরায় চালান, CLASPRC_JSON সিক্রেট আপডেট করুন। |
| "ENOENT .clasp.json" | ক্রেডেনশিয়াল যাচাই করার ধাপটি clasp push আগে ফাইলটি লেখে। |
| পুশ সফল হয়েছে কিন্তু কোড অপরিবর্তিত রয়েছে | নিশ্চিত করুন যে সিক্রেটে থাকা scriptId আপনার টার্গেট প্রজেক্টের সাথে মেলে। |