ඕනෑම භාෂාවක් හෝ මෙවලමක් සඳහා සමිති සංස්කරණය සහිත වේගවත් හා පහසු CI / CD pipelines. මෙවලමක් නව අනුවාදය නිකුත් කිරීම කම්මැලි විය යුතුය. කිසිදු උත්සවයක්, කිසිදු රැස්වීම් සැලසුම් කිරීම, කිසිදු සාකච්ඡාවක් පවා නොවිය යුතුය. එය විවෘත විය යුතුය, පහසුවෙන්, විශ්වාසදායක විය යුතුය, හා පවා තොරතුරු - ඊට පසුව. කෙසේ වෙතත්, DevOps විසඳුම් ක්රියාත්මක කිරීම සඳහා කණ්ඩායම් උදව් කරන මෘදුකාංග උපදේශකයෙකු ලෙස, මම බොහෝ විට සොයා ගන්නේ නැහැ. මගේ ප්රවේශය තේරුම් ගැනීම සඳහා, මම මෙම මාතෘකාව පිළිබඳ මගේ අදහස වසර ගණනාවක් තිස්සේ වර්ධනය වී ඇති ආකාරය බෙදා ගැනීමට කැමතියි. දැනට, මම "LEGO බ්ලැක්ස්" පුළුල් වෙනස්කම්, ආකෘති වෙනස්කම් වැනි කුඩා ප්රතිඵල සමඟ මොඩියුලය වැඩ ක්රියාත්මක කිරීම ඇතුළත් කරන ක්රියාවලිය ක්රියාත්මක කරන්න. උදාහරණයක් ලෙස, Rust පුස්තකාලය X සඳහා ඉදිකිරීම් ක්රියාවලිය Rust පුස්තකාලය Y සමග සමාන විය හැකි අතර, Node සේවාදායක foo සමහර විට Node සේවාදායක වේ. වසර ගණනාවක් තිස්සේ මම මේ සඳහා විවෘත මූලාශ්ර අමුද්රව්ය අමුද්රව්ය එකතු කිරීමට උත්සාහ කළා, නමුත් මම නිවැරදි සංකේතයක් සොයාගෙන නැහැ. ඒත් මුලින්ම... මම තේරුම් ගන්නේ අනුවාදය සහ නිදහස් කිරීම වඩාත් උනන්දුවක් නැති මාතෘකාවක් නොවේ; කෙසේ වෙතත්, එය සෑම ව්යාපෘතියකටම මුහුණ දෙන ප්රශ්නයක් වන අතර, Vibe-කෝඩ් කරන විට පවා (විශේෂයෙන් විශේෂයෙන්ම!). එය නිවැරදිව කිරීමෙන් ඔබේ ව්යාපෘතිය වඩාත් වෘත්තීය පෙනුමක් සහ එහි පරිශීලකයින්ට වෙනස්වීම් සන්නිවේදනය කරනු ඇත.This establishes more trust in your projects by helping developers understand and adopt new changes in a clear and consistent way. ආරම්භයේදී... මගේ මෘදුකාංග ඉංජිනේරු වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘත්තීය වෘ අපි සැලැස්ම පිළිබඳ විශේෂාංගයක් ලිවීමට සහ Fibonacci අංකය හෝ T-Shirt ප්රමාණය හෝ, නරකම අවස්ථාවලදී, දින ගණනාවක් ගණනය කිරීමට උපරිම උත්සාහ කරමු. මෙම ප්රකාශය මෙම ක්රියාවලිය ප්රතිඵලයක් විය. ප්රතිඵල ප්රතිඵල, සැබෑ පරිශීලකයන් වෙත ප්රවාහනය කරන ලදී. මෙම ක්රියාවලිය ප්රතිඵලයක් ලෙස, එය නිවැරදි කිරීමට ඉහළ ඔට්ටු, ප්රකාශය සංවේදී මොහොතක් විය. උනන්දුවෙන්ද ? බයද ? සමහර විට ඔබ ක්රියාකාරී කර ඇති කිහිප දෙනෙක් ඔබගේ හදවත තරඟ කර ඇති අතර ඔවුන් යන්ත්ර ක්රියාත්මක කර ඇත. version number එක තීරණය කරන එක ගැනත් විස්තරයක් සහ නාට් යයක් තියෙනවා. මේක ලොකු විවෘතයක්ද? සම්පූර්ණයෙන්ම නව අනුවාදය?? Minor? සමහර වෙලාවට වෙළඳ දැන්වීම් අනුවාදය... 2.0! මගේ වෘත්තීය වේලාවේ මේ මොහොතේ, මෙම ප්රවර්ගය සංඛ්යාව පිළිබඳ මාගේ අදහස ප්රධාන වශයෙන් වැදගත් නොවූ අතර, පසුපස බැලුවහොත්, එය සමහර විට කිසිවෙකුගේ විය යුතු නැත (ඔබ ඊළඟට මම අදහස් කරන්නේ කුමක්දැයි බලන්න). මම මුලදී විවෘත කිරීම සඳහා වගකිව යුතු නැහැ ... කෙසේ වෙතත් ... එය සදාකාලිකව දිගු නොවනු ඇත. විවෘත මූලාශ්රය මගේ වෘත්තීය වේලාවේ යම් මොහොතක, මම විවෘත මූලාශ්රයට උපකාර කිරීමට උනන්දු විය. ඒ නිසා තමයි මම නිදහස් කිරීම ගැන වගකිව යුතුව තිබුණේ. මට මතක නැහැ කොහොමද, සමහර විට සමහර පුවත්පත් හරහා හෝ සමහර විට මැට් වොල්ටර්ස් සහ මම එක්ව ක්රියා කරන ලද NYC NodeJS රැස්වීමේ කොටසක් හරහා - මම පුස්තකාලයට පැමිණියේය. සමිති විවෘත කිරීම, මම වෙබ් නිර්මාණකරුවෙකු ලෙස, සමිති මත පදනම්ව ප්රශ්න වෙන් කිරීමේ මූලධර්මයක් සකස් කර ඇත. semantic-release ඔබ පිටතට යන්න සහ සමිති නිදහස් කිරීම භාවිතා කිරීමට ආරම්භ කිරීමට පෙර, මම එය සමඟ මුහුණ දී ඇති සීමා කිහිපයක් ඇත ... සහ මම මොහොතකින් ඔවුන් වෙත ළඟා වනු ඇත. පළමුව, ඉහළ මට්ටමේදී, සමිති ප්රකාශය ප්රකාශ කරන ලද මූලික අදහස වන්නේ ඔබ ඔබේ කමිටුවේ පණිවිඩ සඳහා නිශ්චිත ආකෘතිය අනුගමනය කරන බවයි, සහ පණිවිඩ මත පදනම්ව, අනුවාදය ගණනය කළ හැකි බවයි. එය සැබවින්ම වෙනස් වී ඇති දේ මත පදනම්ව, ප්රකාශ වලින් හැඟීම් ඉවත් කිරීම ගැන කතා කළා. උදාහරණයක් ලෙස, v2 සහ v3 යන නව ප්රධාන අනුවාදය ප්රදර්ශනය කළහොත්, එය ප්රමුඛ වෙනසක් විය. ඔබගේ Commit පණිවුඩය තුළ මෙය අදහස් කිරීම සඳහා, ඔබ ඇතුළත් කළ යුතුය කොමිසමේ ශරීරයේ BREAKING CHANGE: feat: revamp user auth flow BREAKING CHANGE: Per Chad's "game-changer" vision in the 3am Slack rant, we've ditched the old auth system for a blockchain-based solution because "passwords are so 2024." Update your clients or enjoy the 500 errors! v2.0.0 සිට v2.1.0 දක්වා වැනි කුඩා සංස්කරණය පිපිරීම්, නව විශේෂාංගයක් එකතු විය. feat: add dark mode toggle Per the 47-comment thread in the "urgent" ticket, users can now save their retinas. Dark mode added, but brace for the inevitable "make it darker" feedback. Patch versions signaled fixes, or refactors, or basically most anything else that should trigger a new release. fix: revert "fix" by AI that skipped the breaking tests to avoid the failure අවසාන වශයෙන්, සමහර පොරොන්දුවලට මුළුමනින්ම නිදහස් කිරීමක් සිදු නොකළ යුතුය. ”කෙරෝ” ඔවුන් මට ඉදිරිපත් කරන ආකාරය. chore: update release pipeline version from v3.1.0 to v3.1.1 මෙම විශේෂ තැපැල් පණිවුඩය හඳුන්වනු ලැබේ ඔබ සම්පූර්ණ spec සඳහා ඔවුන්ගේ පිටුව පරීක්ෂා කළ හැකිය, නමුත් මම එහි වස්තුව බෙදා ගැනීමට අවශ්ය විය. කොමිසම කොමිසම මීට අමතරව, commits තුළ ඇති මෙම තොරතුරු ද වෙනස්වීම් ලැයිස්තුවක් ලෙස ප්රදර්ශනය විය හැක - උදාහරණයක් ලෙස, වෙනස්වීම් ප්රදර්ශනය කිරීම. What's new in v2.0.0 * feat: remove deprecated API BREAKING CHANGE: the FooBar API that was deprecated. To upgrade, you can use the new BazBar API. එබැවින්, යම් කාලයක් සඳහා, අර්ථකථන නිදහස් කිරීම මට විශිෂ්ට විය.Node ව්යාපෘති සඳහා, එය තවමත්... කෙසේ වෙතත්... DevOps සඳහා මම සෑම විටම ප්රමාණවත් බෙදාහැරෙන පද්ධති ගොඩනඟන ආකාරය ගැන අදහසක් ගැන උනන්දු වූ අතර, ඒ නිසා මම මගේ වෘත්තියේ දීර්ඝ කාලයක් තිස්සේ උත්සාහ කළ දෙයක් විය. දිගු කතාව කෙටි, මම අවසානයේ එය නිවැරදිව කරන්නේ කෙසේද යන්න ඉගෙන ගත්තා, නමුත් නව ගැටලුවක් තිබේ: සියලු කොටස් ස්ථාපනය කරන්නේ කෙසේද. මෙම NPM මොඩියුලය නොවේ; එය යෙදුම්, සේවා, දත්ත සමුදාය සහ රැස්වීම් විය! මම සංකේත විවෘත කිරීමේ සරලතාවයට කැමැත්තෙමි, නමුත් එය Node.js ව්යාපෘති සඳහා පමණක් හොඳින් වැඩ කළා. ලියාපදිංචි නොවන ව්යාපෘති වලට, නමුත් එය හොඳම අවස්ථාවලදී අවුල් හා හැකී විය. package.json මෙම කාලය තුළදී, මම Jenkins යුගයේ දී DevOps හි ගැඹුරින් සම්බන්ධ විය. මම Jenkins සමඟ pipelines ලිවීමට සහ Docker Swarm සමඟ සියල්ල ස්ථාපනය කිරීමට ඉගෙන ගත්තා! මගේ ආරම්භක DevOps ගමන සහ ස්ථාපනය කිරීම සඳහා Docker සොයා ගැනීම. මමත් ඒ වෙලාවේ ස්කෑන්ට් පදනම්ව සංවර්ධනය පිළිගත්තේය, සහ මාගේ වඩාත් නවතම හා තවමත් අදාළ හා නිවැරදි මාර්ගෝපදේශය ස්කෑන්ට් පදනම්ව සංවර්ධනය පිළිබඳ මාතෘකාව ඔබට උනන්දුවක් තිබේ නම් ඇයි සහ කෙසේද යන්න පැහැදිලි කරයි. මමත් ඒ වෙලාවේ ස්කෑන්ට් පදනම්ව සංවර්ධනය පිළිගත්තේය, සහ මාගේ වඩාත් නවතම හා තවමත් අදාළ හා නිවැරදි මාර්ගෝපදේශය ස්කෑන්ට් පදනම්ව සංවර්ධනය පිළිබඳ මාතෘකාව ඔබට උනන්දුවක් තිබේ නම් ඇයි සහ කෙසේද යන්න පැහැදිලි කරයි. මම සෑම විටම මම වැඩ කරන මෙම ව්යාපෘති ප්රවර්ග සහ ප්රවෘත්ති ප්රවෘත්ති ව්යාපෘති ලෙස නිදහස් කිරීමට අවශ්ය, නමුත් මම කිසිවිටෙකත් වැඩ කරන විසඳුමක් සොයා ගැනීමට නොහැකි විය. එය මගේ ලැයිස්තුවේ වැදගත්ම දෙයක් නොවේ, එබැවින් මම සාමාන් යයෙන් එය හොඳින් හොඳින් කියමි සහ දුර්වලතා සමඟ ජීවත් විය. කාලය තුළදී, DevOps උපදේශකයෙකු ලෙස, මම විවිධ භාෂා සහ ව්යුහයන් තුළ විවිධ ව්යාපෘති හමුවී ඇති අතර, සෑම ව්යාපෘතියකටම අනුවාදය, ප්රවෘත්ති සහ changelogs අවශ්ය වේ. මම බොහෝ විට හමු වූ තවත් හිසකෙස් විශාල, monolithic pipelines විය. Jenkins යුගයෙන් පැමිණ, මම එය ලබා ගන්නේ, මම pipelines පවා ලියන ආකාරය මේ ආකාරයයි. මම විශාල පියවර ගණනාවක් තුළ සම්පූර්ණ ප්රවාහනය ප්රවාහනය කිරීමට උත්සාහ කළෙමි, ප්රධාන තල්ලු කිරීමෙන් ආරම්භ. ඔබ ප්රධාන තල්ලු කළහොත්, විවිධ ගුණාත්මක පරීක්ෂණ ක්රියාත්මක වනු ඇත, නව අනුවාදය ගොඩනැගනු ඇත, ප්රකාශයට පත් කර ඇත, ටැග, සහ ප්රකාශයට පත් කරනු ඇත. මෙය තනිවම භයානක නොවේ, බොහෝ අවස්ථාවලදී සමහර විට "වැරදි ප් රමාණයක්" විය හැකිය; කෙසේ වෙතත්, DevOps උපදේශකයෙකු ලෙස, මට එය නැවත වරක් කළ යුතුය. කුඩා, වඩාත් මොඩියුලර් කොටස් වලින් දේවල් බිඳ දැමීම එම කොටස් වඩාත් ව්යාපෘති සේවය කිරීමට ඉඩ සලසයි. මම මුලින්ම මේ ගැන අසාමාන්ය ජේම්ස් Halliday, AKA Substack විසින් විස්තර කර ඇති බව ඇහුවා. , UNIX Philosophy වලට පිවිසෙන අදහසකි. අදහසට පිවිසීම උදාහරණයක් ලෙස, Node Quality pipeline සෑම Node ව්යාපෘතියකම එකම විය හැක, ඔබ සම්මත npm script conventions අනුගමනය කරන්නේ නම්, එබැවින් linting, building, සහ unit testing ක්රියාත්මක කිරීම සඳහා පොදු pipeline බොහෝ, එසේ නොවේ නම් සියලු Node.js ව්යාපෘති මත බෙදා ගත හැකිය. ඒ වගේම, ඒ වගේම, ලිඛිත අංශයේ ෆයිල් එක තීරණය කරන්නේ මොකක්ද වෙන්නෙ කියලා. මෙහෙයුම ක් රියාත්මක වේ. npm run lint --if-present package.json lint Versioning සහ Releasing සඳහා උසස් මට්ටමේ pipelines ඉහළ මට්ටමකදී, නිදහස් කළ යුතු සෑම ව්යාපෘතියකටම මුලින්ම නව අනුවාදය අංකයක් ලියාපදිංචි වනු ඇත.එවිට, එම අනුවාදය අංකය සමඟ සබැඳී ඇති ප්රකාශයක් නිර්මාණය කළ හැකි අතර, එහි සම්බන්ධ පයිප්ලයින් කොටසක් ලෙස ප්රදර්ශන නිෂ්පාදනය කරනු ඇත. මම GitHub ක්රියා බොහෝ විට භාවිතා, මම හිතන්නේ pipelines ද්රව්ය වේ, හා එය ආරම්භ කිරීමට පහසු එකක්.මම බොහෝ භාවිතා කර ඇත, නමුත් ඔවුන් සියල්ලම මූලික වශයෙන් එකම - බෙදාහැරෙන ප්රමාණයක් සමග පියවර කිහිපයක් ක්රියාත්මක. පරිවර්තනය කිරීම, අපි සම්ප්රදායික පොරොන්දුව සංකේත සංස්කරණය වර්ධනය සම්බන්ධ වන ප්රමිතීන් අනුගමනය කරන්නේ නම්, භාෂා විශේෂ දෙයක් නොවේ.එයට කේතයේ අන්තර්ගතය මත රඳා පවතී; ඒ වෙනුවට, එය සංස්කරණය හා පොරොන්දුව ඉතිහාසය ගැන සැලකිලිමත් වේ. සෑහෙන කාලයක් තිස්සේ, මම ප්රදර්ශන වලට ප්රදර්ශන සම්බන්ධ කරමි, ඔවුන් එකම දෙයක් කොටසක් බව සිතමින්, ඇත්ත වශයෙන්ම, ඔවුන් දෙදෙනා එක්ව වෙන්ව ඇති විවිධ සත්වයන්. ඒවා වෙන් කිරීමෙන් පයිප්ලයින්ගේ versioning කොටසක් තමන්ගේම modular කොටසක් බවට පත් විය, එවිට එම අනුවාදය සහ ඊළඟ ප් රදර්ශනය ගොඩනැගීමට හේතු විය. සෑම ව්යාපෘතියකටම, GitHub ක්රියාකාරකම් වලදී, මට පයිප්ලයින් දෙකක් ඇත: On commit to the trunk branch, version, and tag When a commit occurs in the trunk branch (usually or ), trigger a pipeline that runs quality checks, and, if they pass, calculates a new version number. It then creates and pushes a tag with that new version number. We can also use this opportunity to update that version number in the code base if necessary, and generate a change log from the commit data that was used to calculate the new version number. main master When a tag is created, build new versions and release them. This step is simplified by the previous step of doing the version bump. Everything’s already been bumped to the new version. We can just run build and release using the tag as the base. මම මීට පෙර සඳහන් කළ පරිදි, GitHub ක්රියා වෙළඳසැලෙන් විවෘත මූලාශ්ර අමුද්රව්ය අමුද්රව්ය එකතු කිරීමට බොහෝ වතාවක් උත්සාහ කිරීමෙන් පසු, මම අවසානයේ දී මගේම මෙවලම ලිව්වා. ඇතුළත් කිරීම vnext ඊළඟ vnext වේගවත් Rust CLI මෙවලමක් වන අතර, ඔබේ ඊළඟ අර්ථකථන අනුවාදය ගණනය කිරීම සඳහා සාම්ප්රදායික කොමිෂන් පණිවුඩ භාවිතා කරයි, ස්වයංක්රියාකාරීව ප්රධාන, කුඩා හෝ පැකේජ ප්රතිඵල සකස් කිරීම සඳහා. මෙන්න මේක පාවිච්චි කරන විදිය. NEXT_VERSION=v`vnext` vnext --changelog > CHANGELOG.md මම හිතන්නේ එය ඉතා සරලයි!ඔබ මොනවද හිතන්නේ කියලා කියන්න. එය සම්පූර්ණයෙන්ම ව් යාපෘතියේ git ඉතිහාසය මත පදනම් වේ. ඔබ විකාශය කරන භාෂාව හෝ මෙවලමක් ගැන සැලකිලිමත් නොවේ; සංස්කරණය කිරීමේ ක්රියාවලිය මූලික වශයෙන් එකම වේ. නව අනුවාදය ලබා ගන්න, එය සමහර ගොනු තුළ යාවත්කාලීන කරන්න, changelog, ටැග් සහ push නිර්මාණය කරන්න. is quick and easy to install via - සකස් කිරීමෙන් පසු, ඔබ ක්රියා කළ හැකිය: vnext ubi “Universal Binary Installer” ubi --project unbounded-tech/vnext මම ඔබ ඇමතුම් කළ හැකි බෙදාහැරෙන GitHub ක්රියාකාරකම් වැඩපිළිවෙළක් නිර්මාණය කර ඇති අතර, මෙම සියලුම විස්තර කටයුතු කරයි. Share කරන Workflow එක භාවිතා කරන ආකාරය මෙන්න: name: On Push Main, Version and Tag on: push: branches: - main - master permissions: packages: write contents: write jobs: version-and-tag: uses: unbounded-tech/workflow-vnext-tag/.github/workflows/workflow.yaml@v1 with: useDeployKey: true changelog: true වැඩිපුරම ව්යාපෘති කොයි ආකාරයෙන් සහ කුමන ගොනුවන් නව අනුවාදය අංකය සමඟ යාවත්කාලීන කිරීමට අවශ්ය වනු ඇත. දැනට , ප්රතිඵල 2 ක් අනුගමනය කිරීම ( සහ ) සහ භාෂා විශේෂ විකල්ප කිහිපයක්. vnext yqPatches regexPatches භාෂා විශේෂිත විකල්ප භාවිතා කිරීම පහසුම වේ. දෙකක් uses ව් යාපෘතියේ ගොනු යාවත්කාලීන කිරීම with.node true npm මෙවලම භාවිතා කරන්න I often use this for updating version numbers in Helm charts: මම නිතරම භාවිතා කරන්නෙමි. yqPatches yq version-and-tag: uses: unbounded-tech/workflow-vnext-tag/.github/workflows/workflow.yaml@v1.13.0 secrets: GH_PAT: ${{ secrets.YOUR_ORG_SECRET_PAT }} with: usePAT: true changelog: true yqPatches: | patches: - filePath: helm/values.yaml selector: .image.tag valuePrefix: "v" - filePath: helm/Chart.yaml selector: .version valuePrefix: "v" මම මෙම අවස්ථාවේදී පෞද්ගලික ප්රවේශ ටෝකන් භාවිතා කරන්නේ කෙසේදැයි බෙදාගැනීමට අවස්ථාවක් ලබා දුන්නා. මම මෙම අවස්ථාවේදී පෞද්ගලික ප්රවේශ ටෝකන් භාවිතා කරන්නේ කෙසේදැයි බෙදාගැනීමට අවස්ථාවක් ලබා දුන්නා. භාවිතය නව සංස්කරණය අංකය ඇතුළත් කර ඇති string එකක් සොයන්න සහ මාරු කරන්න. regexPatches sed regexPatches: | patches: - filePath: package/composition.yaml regex: /ghcr.io/org-name/package-name:(.*)/g valuePrefix: ghcr.io/org-name/package-name:v - filePath: README.md regex: /Current version: v[0-9]+\.[0-9]+\.[0-9]+/g valuePrefix: Current version: v ඔබට විකල්ප සංකේතයක් පවා භාවිතා කළ හැකිය. GitHub ක්රියාකාරකම් පිළිබඳ අමුද් රව් ය GitHub ක්රියාකාරකම් මත ක්රියාකාරකම් ක්රියාත්මක කරන විට, මූලික වශයෙන්, සේවකයා තාවකාලික GitHub ඔප්පු ටෝකන් නිර්මාණය කරයි.මේ ටෝකන් කිහිපයක් මූලික රාජකාරි ක්රියාත්මක කිරීමට අවසර ඇත; කෙසේ වෙතත්, එය කිසිවිටෙකත් අනෙකුත් pipelines ක්රියාත්මක කිරීමට අවසර නැත. නමුත් නව අනුවාදය ටැග් කිරීමෙන් පසු අපගේ ඊළඟ පියවර වන්නේ එම ටැග් සමඟ තවත් pipeline ක්රියාත්මක කිරීමයි! කරදර නොකරන්න, මෙය සැලසුම් අනුවයි - GitHub විසින් අසාමාන්යව ක්රීඩකයින් කිහිපයක් බිඳ දැමීමට නවත්වන්න.ඔබට එය කිරීමට අවසර ලැබේ, නමුත් ඔබ ඒ ගැන සැලකිලිමත් විය යුතුය. There are a few ways to be intentional about it — I’ve already shown an example of two: Deploy Key සහ ගැලපෙන GitHub Actions Secret භාවිතා කිරීම පෞද්ගලික ප්රවේශ ටෝකන් භාවිතා කිරීම GitHub Action Secret ලෙස GitHub යෙදුම නිර්මාණය කිරීම (විශේෂ වශයෙන් - මට මෙම විකල්පය අවශ් යතාවයක් නොමැත) පෞද්ගලික ප්රවේශ ටෝකන් භාවිතා කිරීම, ඔබ GitHub පරිසරය තුළ ගෙවන පාරිභෝගිකයෙකු නම් පහසුය, සංවිධානයේ සම්පූර්ණ රහස ලබා ගත හැකිය. නොමිලේ මට්ටමේ දී, එය විකල්පයක් නොවේ, එබැවින් මම ඔබට ස්ථාපනය කිරීමේ යතුර ස්ථාපනය කරන්නේ කෙසේදැයි පෙන්වන්නම්. ඇත්ත වශයෙන්ම, මම එය නිර්මාණය කිරීමෙන් එය ඉතා සරල කරගත්තා CLI. එය විශිෂ්ට විකල්පයක් වන අතර, මේ ආකාරයෙන් සකස් කරන විට මිනිසාට එය දැන ගැනීමට අවශ් ය නැත, එය පහසුවෙන් එකම නියෝගයක් නැවත ක්රියාත්මක කිරීමෙන් ක්රියාත්මක කළ හැකිය. vnext ඔබ ස්ථාපනය කිරීමට අවශ්ය සෑම තැන්පතු සඳහා ප් රදර්ශනය සඳහා ප් රදර්ශනය කිරීම සඳහා, ව්යාපෘතියේ ලිපිනයකදී... vnext First, get an auth token using යතුරු කළමනාකරණය කිරීමට අවසර සහිතව: gh gh auth refresh -h github.com -s admin:public_key -s admin:ssh_signing_key export GITHUB_TOKEN=$(gh auth token) ඊට පස්සේ Run: vnext generate-deploy-key ඔබ ප්රශ්නය විය හැකිද, මෙය තනියම පයිප්ලයින් ඇතුළත් කළ හැකිද? අවාසනාවකට මෙන්, මම පෞද්ගලික ප්රවේශ ටෝකන් නිර්මාණය නොකර මෙම පියවරක් ස්වයංක්රීය කිරීම සඳහා ක්රමයක් සොයා ගත නොහැක, ආකෘති ටෝකන් රහස් වෙනස් කළ නොහැක. මෙය නොමිලේ මට්ටමේ වෙනුවට ප්රදර්ශන යතුරු භාවිතා කිරීමෙන් පරාජය කරයි, ඔබ සෑම ප්රදර්ශනයකම එය නිර්මාණය කළ යුතුය. ඔබ ප්රශ්නය විය හැකිද, මෙය තනියම පයිප්ලයින් ඇතුළත් කළ හැකිද? අවාසනාවකට මෙන්, මම පෞද්ගලික ප්රවේශ ටෝකන් නිර්මාණය නොකර මෙම පියවරක් ස්වයංක්රීය කිරීම සඳහා ක්රමයක් සොයා ගත නොහැක, ආකෘති ටෝකන් රහස් වෙනස් කළ නොහැක. මෙය නොමිලේ මට්ටමේ වෙනුවට ප්රදර්ශන යතුරු භාවිතා කිරීමෙන් පරාජය කරයි, ඔබ සෑම ප්රදර්ශනයකම එය නිර්මාණය කළ යුතුය. ඔබගේ ස්ථාපිත යතුර, හෝ පෞද්ගලික ප්රවේශ ටෝකන් (PAT), ස්ථාපිත කර ඇති අතර, අනුවාදය සහ ටැග් වැඩ ක්රියාවලිය ඔබගේ ගර්භණී අංශයට යටත් කරයි, ඊළඟ පියවර නිදහස් කිරීමයි! මෙම ව්යාපෘතිය අනුව වෙනස් වනු ඇත, නමුත් ඔවුන් සියලුම පෙර පියවරෙන් ලියාපදිංචි කරන ලද අනුවාදය විසින් ක්රියාකාරී වේ. name: On Version Tag, Trigger GitHub Release on: push: tags: - 'v*.*.*' permissions: contents: write jobs: release: uses: unbounded-tech/workflow-simple-release/.github/workflows/workflow.yaml@v1 with: tag: ${{ github.ref_name }} name: ${{ github.ref_name }} හෝ, එය Rust ව්යාපෘතිය නම්, සමහර විට මේ වගේ දෙයක්: name: On Version Tagged, Build and Publish Rust Binaries on: push: tags: - "v*.*.*" permissions: contents: write jobs: build-and-release: uses: unbounded-tech/workflows-rust/.github/workflows/release.yaml@v1 with: binary_name: ${{ github.event.repository.name }} build_args: "--release --features vendored" හෝ එය Dockerfile සමග යෙදුමක් නම්, සහ k8s Gitops ස්ථාපනය සඳහා ප්රභේද සංකේතයන්, සමහර විට මේ වගේ දෙයක්: name: promote on: push: tags: - v*.*.* permissions: contents: write packages: write issues: write pull-requests: write jobs: publish: uses: unbounded-tech/workflows-containers/.github/workflows/publish.yaml@v1.1.1 release: needs: publish uses: unbounded-tech/workflow-simple-release/.github/workflows/workflow.yaml@v1 with: tag: ${{ github.ref_name }} name: ${{ github.ref_name }} promote: needs: release uses: unbounded-tech/workflows-gitops/.github/workflows/helm-promote.yaml@v1 secrets: GH_PAT: ${{ secrets.GH_PAT }} with: environment_repository: your-org/staging-env path: .gitops/deploy project: staging සටහන: යෙදවීමේ යතුරක් gitops ප්රවර්ධනය පියවරේ වැනි වෙනත් repos වලට තල්ලු කළ නොහැක, එබැවින් ඔබට මෙම repository සඳහා සෑම තැනකම PAT භාවිතා කිරීම ගැන සැලකිලිමත් විය හැකිය. සටහන: යෙදවීමේ යතුරක් gitops ප්රවර්ධනය පියවරේ වැනි වෙනත් repos වලට තල්ලු කළ නොහැක, එබැවින් ඔබට මෙම repository සඳහා සෑම තැනකම PAT භාවිතා කිරීම ගැන සැලකිලිමත් විය හැකිය. Generally, every release is a combination of some pieces of these similar modules, which do pretty much the same things but for their specific tools or languages. සාමාන්යයෙන්, සංවිධාන අවම වශයෙන් ඔවුන් නිර්මාණය කරන අයදුම්පත් සහ සේවා තුළ බොහෝ සමාන ආකෘති අනුගමනය කිරීමට උත්සාහ කරන අතර, ඒ නිසා බෙදාහැරෙන මොඩියුලීය කොටස් වලට රැකියාව ක්රියාවලිය බෙදාහැරීම නිසා, සංවර්ධකයින් මෙම බෙදාහැරෙන රැකියාව ක්රියාවලිය ඇමතුම් වල ඔවුන්ගේ රසය සෑහෙන්න ක්රියාත්මක කිරීමට සහ ඒ වර්ගයේ සෑම ව්යාපෘතියකට බෙදාහැරීමට ඉඩ සලසයි. Changelogs සමඟ නිශ්චිත නිදහස් කිරීම You may have noticed I kind of glanced over the මම ඒ ගැන නැවත වටා යන්න කැමැත්තෙමි, එය ප්රමාණවත් නිදහස් කිරීමේ ක්රියාවලියෙහි වැදගත් කොටසක් වන නිසා.Changelog ඔබ ඔබේ ව්යාපෘතිය වෙනස් කර ඇති ආකාරය අනෙකුත් සංවර්ධකයින්ට සන්නිවේදනය කළ හැකි ආකාරයයි. with.changelog පින්තූර පිංතූර සමග, මෙම changelog නිර්මාණය කිරීමට COMMIT පණිවිඩය භාවිතා කරයි සහ එය CHANGELOG.md නමැති ගොනුවකට ආරක්ෂා කරයි. vnext මම ඉහත බෙදාගත් එම ප්රකාශනය වැඩපිළිවෙළ තුළ සැඟවුණු මෙම ගොනුව GitHub ප්රකාශනය ශරීරයක් ලෙස භාවිතා කරයි. ව් යාපෘතිය තමන්ටම: vnext මෙම ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති ප්රවෘත්ති මෙම නිදහස් සටහන් පසුව අනෙකුත් මෙවලම්, වැනි , a tool that makes PRs to keep your dependencies up to date. අලුත්වැඩියා Pull Requests එකතු කරන විට, මම GitHub හි Squash and Merge විශේෂාංගය භාවිතා කිරීමට කැමතියි, ඒ නිසා මම ChangeLog හි භාවිතා කරනු ලබන ලස්සන අවසාන Commit පණිවිඩය මාතෘකාව සහ ශරීරයක් ලිවීමට අවස්ථාව ලැබේ. උදාහරණයක් ලෙස: උදාහරණයේ දැක්වෙන පරිදි, ඔබ සම්පූර්ණ ප්රමාණයේ Markdown ස්ථාපනය කළ හැක.It will be rendered appropriately in the Release Notes! ප් රතිඵල මම දන්නවා සංස්කරණය කිරීම සහ නිදහස් කිරීම වඩාත් ලිංගික මාතෘකාවක් නොවේ; එය ටිකක් නුසුදුසු - හෝ ඊට වඩා, එය විය යුතුය! නමුත් එය සෑම විටම එසේ නොවේ.මේ නිසා මම නිර්මාණය කරමි ඒ වගේම එක බැගින් දැන්, මම බොහෝ ව්යාපෘති ඉතා ඉක්මනින් පහසුවෙන් නැව්ගත කළ හැකිය! vnext බෙදාහැරෙන Workflows මම බලාපොරොත්තු වෙනවා ඔබටත් එය ප් රයෝජනවත් වේවි! කරුණාකර මට කියන්න ඔබ දෙනවා නම් මම GitHub හි තරු කිහිපයක් සහ ඔබට ඒවා ප්රයෝජනවත් නම් බෙදා ගන්නම්! vnext