কীভাবে গিটহাব পৃষ্ঠাগুলি তৈরি করতে বাধ্য করবেন?


109

প্রতিটি GitHub সংগ্রহস্থলের পারেন আছে ( বা হতে ) একটি GitHub পেজ ওয়েবসাইট, যে Jekyll সঙ্গে নির্মিত হতে পারে। আপনি যখন নতুন কোন প্রতিশ্রুতি চাপান তখনই গিটহাব সাইটটি তৈরি করে।
নতুন প্রতিশ্রুতি না দিয়ে গিথুব পৃষ্ঠাগুলির ওয়েবসাইটটি রিফ্রেশ করার জন্য কি কোনও উপায় আছে?


সম্ভবত এটি তাদের ক্যাশে নীতিমালা অনুসারে? ( Stackoverflow.com/a/13106972/6309 )
VonC

2
আসলে, আপনি একটি নিশ্চিতকরণের জন্য গিটহাব সমর্থনের সাথে যোগাযোগ করতে পারেন এবং এখানে একটি উত্তর পোস্ট করতে পারেন। এটি অন্যকে সাহায্য করতে পারে।
ভনসি

1
ডকুমেন্টেশন অনুসারে , গিথব পৃষ্ঠাগুলি প্রতি ঘন্টা 10 বিল্ডের সীমাবদ্ধতা রয়েছে। আমার অভিজ্ঞতায়, আপনি যদি সীমা ছাড়িয়ে যান তবে নতুন বিল্ডটি ট্রিগার করা হবে না, এমনকি যদি আপনি একটি নতুন অঙ্গীকারকে চাপ দেন।
জাকুব কুকুল

উত্তর:


151

গিটহাব সমর্থন থেকে, 2014-06-07:

উপযুক্ত শাখায় কোন প্রতিশ্রুতি না রেখে ম্যানুয়ালি একটি পুনর্নির্মাণের ট্রিগার করা সম্ভব নয়।


সম্পাদনা:

অ্যান্ডি মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, আপনি আদেশটি দিয়ে খালি প্রতিশ্রুতি দিতে পারেন:

git commit -m 'rebuild pages' --allow-empty
git push origin <branch-name>

সম্পাদনা 2:

গিটহাব অ্যাকশনগুলির জন্য ধন্যবাদ, এটি প্রতিদিনের প্রকাশকে ট্রিগার করা মোটামুটি সহজ: https://stackoverflow.com/a/61706020/4548500


3
আপনি যদি আমার মতো ভাগ্যবান হন তবে গিথুব স্থিতিও পরীক্ষা করুন কারণ তারা নীচে থাকতে পারে বা ব্যাকগ্রাউন্ড জব / বিল্ড নিয়ে সমস্যা রয়েছে।
f01

tl, drgit log
নিলন

20

আপনি যদি একটি দ্রুত স্ক্রিপ্ট সমাধান চান, এটি এখানে। কেবলমাত্র একবারে নিম্নলিখিত কাজগুলি করুন এবং আপনি যখনই নিজের গিটহাব পৃষ্ঠাটি পুনর্নির্মাণ করতে চান তখনই স্ক্রিপ্টটি চালান।

কমান্ড লাইনের জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন:

  • ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করতে এখানে সরকারী সহায়তা অনুসরণ করুন । মূলত, আপনি আপনার GitHub অ্যাকাউন্ট লগ ইন করতে হবে এবং এখানে যান: Settings > Developer settings > Personal access tokens > Generate new token
  • টিক repoসুযোগ।
  • টোকেনটি অনুলিপি করুন।

2. নিম্নলিখিত স্ক্রিপ্ট তৈরি করুন:

  • নামক একটি ফাইল তৈরি RebuildPage.shকরুন এবং লাইনগুলি যুক্ত করুন:

    #!/bin/bash
    curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds
    

    এখানে,

    • yournameআপনার গিটহাব ব্যবহারকারীর নামটি প্রতিস্থাপন করুন ।
    • yourtokenআপনার অনুলিপিযুক্ত ব্যক্তিগত অ্যাক্সেস টোকেন দিয়ে প্রতিস্থাপন করুন ।
    • yourrepoআপনার সংগ্রহস্থলের নামের সাথে প্রতিস্থাপন করুন ।

৩. স্ক্রিপ্টটি চালান:

  • আপনি যদি উইন্ডোজ 10 ব্যবহার করেন:

    • লিনাক্সের জন্য আপনাকে উইন্ডোজ সাবসিস্টেম সেটআপ করতে হবে , যদি ইতিমধ্যে না হয়ে থাকে। এটি করতে এই অনুসরণ করুন ।
    • #!/bin/bashস্ক্রিপ্ট থেকে প্রথম লাইন ( ) সরান এবং স্ক্রিপ্টটি সংরক্ষণ করুন RebuildPage.bat। (যেমন, স্ক্রিপ্ট ফাইলের নামের .shসাথে প্রতিস্থাপন .batকরুন)
    • উপরের পয়েন্টের বিকল্প: .shফাইলটি চালানোর জন্য ডাবল-ক্লিক বৈশিষ্ট্যটি পেতে :

      • ফাইলগুলির bash.exeজন্য ডিফল্ট প্রোগ্রাম হিসাবে সেট করুন .sh
      • খুলুন regedit.exeএবং সম্পাদনা করুন HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command(Default)মানটি এখানে সেট করুন :

        "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
        
    • আপনি যখন নিজের গিটহাব পৃষ্ঠাটি পুনর্নির্মাণ করতে চান তখন এখন স্ক্রিপ্টটিতে ডাবল-ক্লিক করুন। সম্পন্ন!

  • আপনি যদি লিনাক্স / ম্যাক ব্যবহার করেন তবে স্ক্রিপ্টটি চালানো অন্যান্য স্ক্রিপ্টগুলি চালনার সমান। সম্পন্ন!

সমাধানের জন্য অতিরিক্ত নোট:

এই সমাধানটি গিটহাব REST এপিআই v3 এর একটি API ব্যবহার করে। এখানে এপিআইয়ের অফিসিয়াল ডকুমেন্টেশন রয়েছে।


7

আমার কিছুক্ষণের জন্য এই সমস্যাটি ছিল, এবং মাস্টার শাখায় চাপ দেওয়া কোনও myapp.github.ioকারণে কোনও পরিবর্তন হয়নি , দুটি কারণে:

1 - নির্মাণ

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

2 - সমস্যা ক্যাচিং

একটি সফল নির্মাণের পরেও, আমি এখনও ঠিক একই পৃষ্ঠাটি দেখতে পাব myapp.github.ioএবং এর সাথে শক্ত পুনরায় লোডিং এর Ctrl + Shift + Rসমাধান করবে না। পরিবর্তে, যদি ক্রোম ব্যবহার করে থাকেন তবে আপনার পৃষ্ঠাটি পরীক্ষা করুন, Applicationট্যাবে চলে আসুন, বাম মেনুতে "স্টোরেজ সাফ করুন" নির্বাচন করুন এবং মেনুটির নীচে "সাফ সাইট ডেটা" ক্লিক করুন।


6

এখন যেহেতু গিটহাব ক্রিয়াগুলি উপলভ্য, এটি করা তুচ্ছ

# File: .github/workflows/refresh.yml
name: Refresh

on:
  schedule:
    - cron:  '0 3 * * *' # Runs every day at 3am

jobs:
  refresh:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger GitHub pages rebuild
        run: |
          curl --fail --request POST \
            --url https://api.github.com/repos/${{ github.repository }}/pages/builds \
            --header "Authorization: Bearer $USER_TOKEN"
        env:
          # You must create a personal token with repo access as GitHub does
          # not yet support server-to-server page builds.
          USER_TOKEN: ${{ secrets.USER_TOKEN }}

নমুনা রেপো যা এটি করে: https://github.com/SUPERCILEX/personal-website/ferences

পৃষ্ঠাগুলি এপিআই: https://developer.github.com/v3/repos/pages/#request-a-page-build


5

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

এখানে চিত্র বর্ণনা লিখুন

"আপনার সাইটের বিল্ডিংয়ে সমস্যা হচ্ছে: পৃষ্ঠা তৈরি করতে অক্ষম Please দয়া করে পরে আবার চেষ্টা করুন" হিসাবে আপনি একটি বার্তাও দেখতে পাবেন।

তারপরে আমি আমার সাম্প্রতিক প্রতিবেদনগুলি যাচাই করেছিলাম এবং এই সমস্যার কারণ কী তা জানার চেষ্টা করেছি। শেষে আমি সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

এখানে চিত্র বর্ণনা লিখুন

ট্যাগগুলিতে (,) একটি অতিরিক্ত কমা ছিল এবং এটি এই সমস্যার কারণ হয়েছিল

এখানে চিত্র বর্ণনা লিখুন

আপনার .md ফাইলে কোনও সমস্যা থাকলে আপনি প্রাসঙ্গিক ত্রুটি বার্তা পাবেন না। আমি আপনাকে বিল্ডের অবস্থা যাচাই করার জন্য সুপারিশ করছি এবং যদি আপনি একই সমস্যার মুখোমুখি হন তবে পরিবর্তনের তুলনা করুন।


4

খালি প্রতিশ্রুতি আমার পক্ষে কাজ করে না, তবে @ বেনেট উত্তরের উপর ভিত্তি করে, এটি আমার পক্ষে কাজ করেছে:

পোস্টম্যানটি খুলুন, এই ইউআরএলটি দিয়ে একটি নতুন অনুরোধ তৈরি করুন: https://api.github.com/repos/ भयोuser_name +/selrepo_name +/pages/builds (আপনার নাম এবং রেপো দিয়ে প্রতিস্থাপন করুন), এবং POST পদ্ধতি নির্বাচন করুন।

এটি চালানোর আগে, headersট্যাবে যান এবং Acceptমান সহ একটি নতুন কী যুক্ত করুনapplication/vnd.github.mister-fantastic-preview+json

এখন আপনি এটি চালাতে এবং আপনার পৃষ্ঠাগুলি আবার দেখতে পারেন।


এটি আমার পক্ষে কাজ করে না, আমি পেয়েছি { "message": "Not Found", "documentation_url": "https://developer.github.com/v3/repos/pages/#request-a-page-build" }। আমার রেপো বেসরকারী বলেই হয়তো?
কোবার্ন


0

বিকল্প সমাধান

আপনি গিটহাবের কাছ থেকে একটি ইমেল পেয়ে থাকতে পারেন যে আপনাকে জানিয়েছিল যে জেকিল আপনার সাইটটি এটির দিকে ধাক্কা দিলে আপনার সাইটটি তৈরি করতে সফল হয় নি Je gh-pages । যদি এটি হয় তবে আপনি অন্য বিল্ডটি ট্রিগার করতে পুশকে জোর করার চেষ্টা করতে পারেন।

আপনি যদি চূড়ান্ত ওয়েবসাইটের জন্য কোনও উত্সর্গীকৃত ফোল্ডার ব্যবহার করেন, তবে একটি publicফোল্ডার বলুন , আপনি আপনার ফোল্ডারটি পুনর্নির্মাণের চেষ্টা করতে পারেন এবং ফোল্ডারটিকে আপনার প্রত্যাবর্তিত পরিবর্তনগুলিতে যুক্ত করতে পারেন। এর পরে, আপনাকে সেই ফাইলগুলি আপনার gh-pagesশাখায় বিভক্ত করতে হবে এবং ফাইলগুলি একেবারে পরিবর্তন না হলেও এমনকি অন্য বিল্ডটি ট্রিগার করতে বাধ্য করতে হবে। কোডের বাকি অংশটি কেবল এর জন্য করা কমিটগুলি সরিয়ে দেয়public সুবিধার জন্য ফোল্ডারের জন্য করা কমিটগুলি সরিয়ে এবং এটি স্থানীয় ফাইল সিস্টেম থেকে সরিয়ে দেয়।

কোড

git add public
git commit -am ":bug: triggering another jekyll build"
git push origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public

পরামর্শ

যদি কোনও আপত্তিজনক পরিবর্তন ঘটে থাকে যা চূড়ান্ত সাইটের অংশ না হয় তবে আপনি সেগুলি নিম্নলিখিত কমান্ড দিয়ে স্ট্যাশ করতে পারেন।

git stash

তারপরে জ্যাকিল বিল্ড ম্যানুয়ালি জোর করে তাদের আনস্ট্যাশ করার জন্য উপরের কমান্ডটি করুন।

git stash pop

তথ্যসূত্র

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.