મુખ્ય સામગ્રીને બાયપાસ કરો

પેકેજો રિલીઝ કરવા

પ્લેગ્રાઉન્ડ તેના પેકેજોને ઓટોમેટેડ CI વર્કફ્લોનો ઉપયોગ કરીને npm પર પ્રકાશિત કરે છે. આ પેજ સમજાવે છે કે રિલીઝ પ્રક્રિયા કેવી રીતે કાર્ય કરે છે અને નવા પેકેજો ઉમેરતી વખતે તમારે શું જાણવાની જરૂર છે.

ઓટોમેટેડ રિલીઝ​

npm પેકેજો દર સોમવારે GitHub Actions દ્વારા આપમેળે પ્રકાશિત થાય છે, અથવા મેન્ટેનર્સ દ્વારા વર્કફ્લો ડિસ્પેચ (workflow dispatch) નો ઉપયોગ કરીને મેન્યુઅલી પ્રકાશિત કરવામાં આવે છે. આ વર્કફ્લો Lerna નો ઉપયોગ કરીને વર્ઝન અપડેટ કરે છે, રિલીઝને ટેગ કરે છે અને તમામ સાર્વજનિક પેકેજોને npm પર પ્રકાશિત કરે છે.

CI એ OpenID Connect (OIDC) ટ્રસ્ટેડ પબ્લિશિંગ નો ઉપયોગ કરીને npm સાથે ઓથેન્ટિકેટ થાય છે. લાંબા ગાળાના npm ટોકન્સનો ઉપયોગ કરવા કરતાં આ વધુ સુરક્ષિત છે કારણ કે તે દરેક વર્કફ્લો રન માટે ટૂંકા ગાળાના ક્રેડેન્શિયલ્સ જનરેટ કરે છે અને પેકેજ પ્રોવેનન્સ (provenance) ને સીધું GitHub રિપોઝિટરી સાથે જોડે છે.

નવું પેકેજ ઉમેરવું​

જ્યારે તમે મોનોરેપોમાં નવું npm પેકેજ ઉમેરો છો, ત્યારે ઓટોમેટેડ રિલીઝ વર્કફ્લો તેને પ્રથમ રનમાં પ્રકાશિત કરી શકશે નહીં. આ એક npm સુરક્ષા સુવિધા છે: OIDC ટ્રસ્ટેડ પબ્લિશિંગ ફક્ત એવા પેકેજો માટે જ કાર્ય કરે છે જે પહેલેથી અસ્તિત્વમાં હોય અને GitHub રિપોઝિટરી પર વિશ્વાસ કરવા માટે કન્ફિગર થયેલા હોય.

તમારે નીચે મુજબના પગલાં લેવાની જરૂર છે:

૧. પેકેજને મેન્યુઅલી પબ્લિશ કરો​

સૌપ્રથમ, તમારા લોકલ મશીન પર npm સાથે ઓથેન્ટિકેટ કરો:

npm login

ત્યારબાદ પેકેજને પ્રથમ વખત પ્રકાશિત કરો:

cd packages/your-new-package
npm publish --access public

આ તમારા એકાઉન્ટ હેઠળ npm રજિસ્ટ્રી પર પેકેજ બનાવે છે.

૨. ટ્રસ્ટેડ પબ્લિશિંગ કન્ફિગર કરો​

પ્રારંભિક પબ્લિશ કર્યા પછી, npmjs.com પર પેકેજના સેટિંગ્સમાં જાઓ અને OIDC ટ્રસ્ટેડ પબ્લિશિંગ સેટ કરો:

  1. npmjs.com પર તમારા પેકેજ પર જાઓ
  2. Settings → Configure Trusted Publishers પર જાઓ
  3. આ સેટિંગ્સ સાથે નવો ટ્રસ્ટેડ પબ્લિશર ઉમેરો. આ તમામ કેસ-સેન્સિટિવ (case-sensitive) છે!
    • Repository owner: WordPress
    • Repository name: wordpress-playground
    • Workflow filename: publish-npm-packages.yml
    • Environment: npm

npm પર OIDC ટ્રસ્ટેડ પબ્લિશિંગ સેટ કરવું

૩. માલિકી ટ્રાન્સફર કરો (જો જરૂરી હોય તો)​

જો તમે તમારા વ્યક્તિગત એકાઉન્ટ હેઠળ પેકેજ પ્રકાશિત કર્યું હોય, તો પેકેજને @aspect સંસ્થા (organization) માં ટ્રાન્સફર કરો અથવા ખાતરી કરો કે સંબંધિત ટીમને પબ્લિશ કરવાની ઍક્સેસ છે.

એકવાર કન્ફિગર થઈ ગયા પછી, ભવિષ્યની તમામ રિલીઝ CI વર્કફ્લો દ્વારા આપમેળે કામ કરશે.

શા માટે OIDC નવા પેકેજો પ્રકાશિત કરી શકતું નથી​

npm નું OIDC ઇમ્પ્લીમેન્ટેશન એ બાબતની આવશ્યકતા રાખે છે કે ટ્રસ્ટેડ પબ્લિશર કન્ફિગર કરી શકાય તે પહેલાં પેકેજ પહેલેથી જ અસ્તિત્વમાં હોવું જોઈએ. ડિઝાઇન મુજબ આ મરઘી-અને-ઇંડા જેવી (chicken-and-egg) પરિસ્થિતિ છે—જે કોઈ વ્યક્તિ વાસ્તવિક માલિક તેનો દાવો કરે તે પહેલાં GitHub વર્કફ્લો દ્વારા પેકેજના નામનું અનધિકૃત અધિગ્રહણ (hijack) ન કરે તે અટકાવે છે.

પ્રથમ વખત મેન્યુઅલ પબ્લિશ કરવાથી માલિકી સ્થાપિત થાય છે, અને ત્યારબાદ ટ્રસ્ટેડ પબ્લિશિંગ ભવિષ્યની તમામ રિલીઝ માટે સુરક્ષિત અને ટોકન-મુક્ત ઓથેન્ટિકેશન (authentication) પૂરું પાડે છે.