পুশ বা কনফিগার পরিবর্তন ছাড়াই হেরোকু স্লাগ পুনরায় কম্পাইল করুন


147

আমি ভাবছি যে হিরোকুকে নতুন কমিটস চাপানো এবং / অথবা কনফিগার ভেরিয়েবলগুলি আপডেট না করে স্লাগটি পুনরায় সংযোগ করতে বাধ্য করার কোনও উপায় আছে কিনা।

আমি কেন এটি করতে চাই ?:

আমি হেরোকুতে একটি সিদ্ধ 3.2 অ্যাপ্লিকেশানের জন্য সিডার স্ট্যাকটি ব্যবহার করছি এবং rake assets:precompileটাস্কটি ব্যর্থ হওয়ায় আমার সমস্যা হচ্ছে (কেবল সংকলনের সময় --- পরে এটি একটি দিয়ে ভাল কাজ করে heroku run)। আমি অত্যন্ত সন্দেহ করি এটি স্লাগ সংকলনের সময় নির্দিষ্ট পরিবেশের ভেরিয়েবলগুলি উপলভ্য না হওয়ায় এবং এটি আমার মনে হয় heroku labs:enable user_env_compileপরীক্ষামূলক বৈশিষ্ট্যটি এটিকে সমাধান করবে।

তবে user_env_compileবৈশিষ্ট্যটি চালু হওয়ার সাথে সাথে কনফিগার পরিবর্তনগুলি স্লাগের পুনঃসংশোধনকে ট্রিগার করে না এবং আমার কোডটি পরিবর্তন হয় নি, তাই আমার ধাক্কা দেওয়ার কোনও নতুন প্রতিশ্রুতি নেই।

অবশ্যই, আমি একটি তুচ্ছ পরিবর্তনের সাথে একটি "ডামি" প্রতিশ্রুতি ঠেলে দিতে পারি, এটি সম্ভবত সবচেয়ে সহজ উত্তর --- তবে আমি ভাবছি যে হিরকু কমান্ড আছে যা আমাকে সরাসরি এই স্লাগটি পুনরায় সংকলন করতে দেবে।

ধন্যবাদ!


1
হিরকু সিএলআই ক্লায়েন্ট কিছুই নেই?
ম্যাট বল

সরাসরি উত্তর নয়, তবে SAAS বৈশিষ্ট্যগুলির উপর নির্ভর করার মতো নির্ভরতা পরিবর্তনের নথিপত্র বন্টন করা সর্বদা বুদ্ধিমানের কাজ My স্লাগ্।
পটকল

উত্তর:


93

স্লাগ সংকলনটি গিট প্রি-রিসিভ হুকের সাহায্যে ডাকা হয়, সুতরাং পুনরায় সংকলনের একমাত্র উপায় হ'ল নতুন প্রতিশ্রুতি দেওয়া push

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


23
আপনার উত্তরের জন্য ধন্যবাদ. এটি সত্য যে একটি গিট প্রাক-প্রাপ্ত হুক স্লাগকে সংকলন করে। (দেখুন, উদাহরণস্বরূপ: devcenter.heroku.com/articles/slug-compiler )। এর অর্থ এই নয় যে হিরকু হিরকু সিএলআই কমান্ডের মতো স্লাগ সংকলন শুরু করার জন্য কোনও বিকল্প ব্যবস্থা সরবরাহ করে না (বা পারে না)। এটি বলেছিল, এরকম কোনও আদেশের কথা কারও উল্লেখ করা হয়নি, তাই আমি ধরে নিচ্ছি যে আপনার উত্তরটি পাওয়া যাবে, অন্ততপক্ষে আপাতত। ধন্যবাদ!
নাথান

1
@ নাথান সম্ভবত আপনি হিরোকু সরঞ্জামবেল্ট দিয়ে স্লাগ সংকলনটি ট্রিগার করার জন্য হিরোকু সমর্থন জিজ্ঞাসা করতে পারেন? তারা যদি এর জন্য যায়, তবে আরও একটি উত্তর যুক্ত করুন!
কালিক

7
এখন একটি সমাধান আছে। Heroku-রেপো অ্যাড-অন
Refael Ackermann

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

12
repo:rebuildপ্লাগ- ইনটিতে
অন্ধবন্ধন

234

এখনকার সবচেয়ে সহজ কাজটি হচ্ছে একটি খালি প্রতিশ্রুতি দেওয়া

git commit --allow-empty -m "empty commit"
git push heroku master

53
আপনি এই কাজ এবং জোর করে ঠেলে পূর্ববর্তী পরে কমিট দ্বারা একটি পরিষ্কার কমিট ইতিহাস রাখতে পারবেন না: git reset HEAD~; git push -f heroku master। অন্য হেরোকু মোতায়েনের সময় ব্যয় অন্তর্ভুক্ত করে তবে পরিষ্কার ইতিহাস FTW।
পল আনিসলে

2
আপনার এটিকে একটি যুক্ত করার জন্য কেবল এটির পরিপূরক হিসাবে ~/.profile: alias heroku-rebuild="git reset HEAD~; git push -f heroku master"বা alias heroku-rebuild="git commit --allow-empty -m 'empty commit' && git push heroku master"আপনি কেবল টাইপ করতে পারেনheroku-rebuild
আনমલ્ટমিডিয়ো

30

আমার সাধারণ পদ্ধতিটি হ'ল:

git commit --amend -C HEAD
git push heroku:master -f

নিশ্চিত না যে আমি উত্পাদনে এটি নিশ্চিত না করেই করব, কারণ এটি প্রযুক্তিগতভাবে শেষ প্রতিশ্রুতি পুনর্লিখন করে তবে এটি তত্ত্বের কোনও সমস্যা সৃষ্টি করতে পারে না। আপনি যখন মঞ্চে জিনিস পরীক্ষা করছেন তখন এটি পুরোপুরি ঠিক fine

একটি যুক্ত বোনাস হিসাবে যেহেতু বেশিরভাগ লোকেরা কমপ্লেট বার্তাগুলি সম্পাদনা করতে ভিম ব্যবহার করতে সমস্যা SHIFT-ZZহওয়ায় দ্রুত কোনও পরিবর্তন না করেই আপনার জন্য কমিট বার্তাটি সংরক্ষণ এবং প্রস্থান করবে।

সম্পর্কিত নোটে আমি মৃদুভাবে হতবাক হিরোকুকে এখনও এই বৈশিষ্ট্যটি নেই। আমি প্রায়শই দেখেছি হেরোকুকে তাদের শেষের সমস্যার কারণে মোতায়েন করতে ব্যর্থ হয়েছে।

ধারণাটি ব্যবহারের জন্য মাইকেল মায়ারকে ধন্যবাদ -C HEAD সম্পাদকটির উদ্বোধন এড়ানোর করা ।


2
অথবা কেবল git commit --amend -C HEADকোনও সম্পাদক খোলা এড়াতে এবং প্রতিশ্রুতি বার্তাটি একই রাখার জন্য ব্যবহার করুন।
মাইকেল মায়ার

ধন্যবাদ @ মিশেলমিয়ার এটি আমার পক্ষে দুর্দান্ত কাজ করেছে এবং আমার অনুভূত গিটার ইতিহাসের সাথে গণ্ডগোল করেছে না।
জেমস ওয়ার্ড

এখানে বিশেষভাবে সাবধান হওয়ার একটি বিষয় হ'ল আপনার যদি আলাদা কেন্দ্রীয় রেপো থাকে (হিরকু ছাড়াও)। যদি তা হয় তবে এর ফলে আপনি ইতিমধ্যে শেষ প্রতিশ্রুতিটি সরিয়ে রেখেছেন পরবর্তী সময় আপনি যখন টানবেন ইতিহাসে প্রতিশ্রুতিবদ্ধতার একত্রীকরণ / নকল হয়ে যাবে।
নিক এফ

কেন এই এত বিরোধী ব্যবহারকারী?
লুক্ক

20

হেরোকু একটি প্লাগইন প্রকাশ করেছে যা জিজ্ঞাসা করা হয়েছে: https://github.com/heroku/heroku-repo

এটি ইনস্টল করতে:

$ heroku plugins:install heroku-repo

একটি পুনর্নির্মাণ জোর করা:

$ heroku repo:purge_cache -a appname
$ heroku repo:reset -a appname
$ git push heroku

15

আপডেট: হিরকু রেপো: পুনর্নির্মাণটি সরানো হয়েছে ।

হিরোকুর একটি বিল্ড এপিআই রয়েছে যা আপনি ব্যবহার করতে পারেন, দেখুন: এপিআই ব্যবহার করে বিল্ডিং এবং রিলিজিং


আপনি রেপো ব্যবহার করতে পারেন : হিরকু-রেপো অ্যাড-অন হলে পুনর্নির্মাণ কমান্ড ।

heroku repo:rebuild -a appname

https://github.com/heroku/heroku-repo


3
ঠিক যেমন অন্যান্য থ্রেডে মন্তব্য, কিন্তু এটা এর মূল্য এখানে পুনরায়: heroku-রেপো addon সৌন্দর্য চমৎকার, কিন্তু এটা চেষ্টা করার পরে আমি না এটা সুপারিশ। একটি খারাপ ত্রুটি রয়েছে: এটি - অ্যাপ্লিকেশন পতাকাটিকে উপেক্ষা করে। আমি যখন মঞ্চ তৈরির পুনর্নির্মাণের কথা বলি তখন এটি ঘটনাক্রমে আমাদের উত্পাদনের পরিবেশটি পুনর্নির্মাণ করে। এই বাগটি রেপোর বিরুদ্ধে এক বছরেরও বেশি সময় ধরে খোলা রয়েছে এখন কোনও রেজোলিউশন নেই। আমি এই প্লাগইনটি আনইনস্টল করেছি।
জেসনক্রাফোর্ড 20'15

6
হিরকু-রেপোর বর্তমান সংস্করণটিতে পুনর্নির্মাণের উপকমান্ড নেই
মাইক স্লিন

পুনর্নির্মাণ কমান্ডটি কাজ করছে না বলে আমাকে রিমোট রেপোটি পুনরায় সেট করতে হবে
বৈভব জয়ন

আপনি আপডেট করেছেন এবং আপনি বলেছেন যে এটি "বিল্ড এপিআই" দিয়ে কাজ করে তবে আমি কীভাবে এটি কাজ করে তা সত্যই বুঝতে পারি না ... কোনও সহায়তা? আমার অ্যাপ্লিকেশনটি পুনর্নির্মাণের জন্য আমাকে কি এইচটিপি পোস্টের অনুরোধ পাঠাতে হবে? কোনটি? একটি টোকেন আছে (সুরক্ষার কারণ)?
ড্যাম ফা


5

এর জন্য একটি হিরকু প্লাগইন রয়েছে

$ heroku plugins:install heroku-releases-retry
Installing plugin heroku-releases-retry... done
$ heroku releases:retry
Retrying v16 on ⬢ murmuring-lowlands-3398... done, v17

3
এটি একটি ব্যর্থ রিলিজের পরে রিলিজগুলি আবার চেষ্টা করবে। এটি ব্যর্থ বিল্ড পুনরায় চেষ্টা করবে না।
জেরেমি

-3

শাখাটি সরান, তারপরে আবার চাপ দিন। প্লাগইন ব্যবহার করার দরকার নেই।

git push heroku :master
git push heroku master

"পুশ প্রত্যাখ্যানিত, মাস্টার শাখা মুছতে পারে না" এর ফলাফল হবে।
স্কেলে

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