"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بإدارة وتثبيت وحدات Go الخاصة بك بسهولة

قم بإدارة وتثبيت وحدات Go الخاصة بك بسهولة

تم النشر بتاريخ 2024-08-23
تصفح:735

Easily manage and install your private Go modules

بالنسبة لمطوري Golang، عادةً ما تكون إدارة وحدات Go وتثبيتها أمرًا سهلاً عند التعامل مع المستودعات العامة. ومع ذلك، تصبح الأمور أكثر صعوبة عندما تحتاج إلى العمل مع وحدات Go الخاصة.

لا توفر سلسلة أدوات وحدات Go آلية مدمجة للعمل مع الوحدات الخاصة بخلاف استخدام GOPROXY الخاص، وإعدادها وصيانتها بشكل صحيح ليس خيارًا لكل مطور أو مؤسسة. تدعم بعض خدمات مستودع الحزم العمل مع وحدات Go الخاصة ولكنها بشكل عام لا توفر أفضل تجربة للمطورين.

لهذا السبب، في معظم الحالات، ينتهي بنا الأمر إلى ترتيب تكوينات Git المعقدة (.netrc أو .gitconfig) جنبًا إلى جنب مع بعض متغيرات بيئة Go لإدارة المصادقة مع مستودعاتنا الخاصة عند استخدام go get أو go install أو go mod download .

المشكلة في تكوينات Git هذه هي أنها ليست واضحة لجميع المطورين، وقد تكون غير آمنة لأنها قد تتطلب تخزين بيانات اعتماد النص العادي في نظام الملفات. تصبح هذه المشكلات أكثر إشكالية عند تكوين أنظمة CI/CD، وإنشاء صور Docker، وما إلى ذلك.

تقديم goproxy.dev

باعتبارنا مطورين قدامى لـ Golang (من العصر الذي لم تكن فيه وحدات Go موجودة أصلاً)، فقد حلمنا دائمًا بوقت يكون فيه العمل مع مكتبات Go الخاصة سهلاً وقويًا مثل العمل مع المكتبات العامة.

تخيل تطوير مكتبات Go الخاصة ودفعها إلى GitHub، واحصل على الفور على التغييرات الجديدة من الكود المصدري لمشروعك عن طريق تعيين متغير البيئة GOPROXY فقط. لا توجد تكوينات Git صعبة وغير آمنة، ولا توجد صيانة GOPROXY ذاتية الاستضافة، ولا توجد مسارات عمل نشر معقدة وعرضة للأخطاء، ونفس الإعداد لجهاز التطوير المحلي الخاص بك، وDockerfile، وبيئة CI/CD.

رحب بـ goproxy.dev، وهي خدمة GOPROXY خاصة تتكامل مع GitHub لتزويدك بتثبيت وحدات Go الخاصة بسلاسة.

كيفية إعداد goproxy.dev في سير عمل التطوير لديك

ما عليك سوى تسجيل الدخول إلى goproxy.dev باستخدام حسابك على GitHub، ومنح حق الوصول إلى المستودعات الخاصة التي ستستخدمها، وتصدير متغيرات البيئة GOPROXY وGONOSUMDB.

export [email protected],proxy.golang.org,direct
export GONOSUMDB=github.com/your-organization

يمكن تعيين متغيرات بيئة Go مباشرة من تكوين Shell الخاص بك (.zshrc، .bashrc، وما إلى ذلك) أو باستخدام go env -w.

ثم يمكنك تشغيل أوامر go المعتادة لتثبيت وتنزيل الوحدات الخاصة بك.

go get github.com/your-organization/[email protected]
go install github.com/your-organization/go-module/cmd
...
go mod download

كيفية استخدام goproxy.dev لإنشاء صور Docker

يتطلب التكامل مع goproxy.dev إعداد متغيرين للبيئة فقط. أفضل طريقة للقيام بذلك أثناء إنشاء Docker هي استخدام ميزة أسرار بناء Docker.

داخل ملف Dockerfile الخاص بك:

COPY go.mod go.sum ./
RUN --mount=type=secret,id=GOPROXY \
    GOPROXY=$(cat /run/secrets/GOPROXY) \
    GONOSUMDB=github.com/your-organization \
    go mod download
RUN go build .

والجري:

GOPROXY="[your GOPROXY value]" docker build --secret id=GOPROXY

كيفية استخدام goproxy.dev من إجراءات GitHub

ما عليك سوى تكوين سر لإجراءات GitHub الخاصة بك التي تحتوي على عنوان URL الخاص بـ GOPROXY واستخدامه من سير العمل الخاص بك:

jobs:
  build:
    - run: |
        go mod download
        go build .
      env:
        GOPROXY: ${{ secrets.PRIVATE_GOPROXY }}
        GONOSUMDB: github.com/your-organization

 قم بتبسيط سير عمل تطوير Go الخاص بك اليوم

مع goproxy.dev، ستتمتع بأفضل تجربة للمطورين عند استخدام المكتبات باستخدام Go. سواء كنت تعتمد على مكتبات عامة مفتوحة المصدر أو وحدات خاصة من مؤسستك، سيكون لديك سير عمل موحد: قم بإعداد متغير بيئة GOPROXY الخاص بك، واحصل على التبعيات لإصدار معين، أو فرع Git، أو الالتزام.

تعرف على المزيد وابدأ مع goproxy.dev اليوم من خلال الاشتراك في الإصدار التجريبي المجاني لمدة 14 يومًا.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/goproxydev/easily-manage-and-install-your-private-go-modules-g74?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3