
GitHub Actions artifact устгасан ч өмнөх төлбөр арилдаггүй

GitHub Actions artifact-ийн хадгалалтын зардлыг бууруулахын тулд шинэ artifact үүсэхээс өмнө хадгалах хугацааг нь богиносго. GitHub-ийн Actions-ийн төлбөрийн тайлбарт artifact устгахад одоогийн хадгалалтын хэмжээ буурч, цаашдын цаг тутмын хуримтлал зогсох боловч тухайн тооцооны мөчлөгт өмнө нь хуримтлагдсан хэрэглээ үлддэг гэж заасан. Багцад багтсан хэмжээнээс давсан artifact болон GitHub Packages-ийн хамтарсан хадгалалтын нийтэлсэн үнэ GB-сард $0.25 байна.
Иймээс хуучин, хэрэггүй artifact-ийг устгах болон дараагийн workflow run-уудаас үүсэх artifact-ийн retention хугацааг тохируулах нь тусдаа ажил юм. Эхнийх нь одоо эзэлж буй зайг чөлөөлнө; хоёр дахь нь ирээдүйд файл хэдий хугацаанд GB-цаг хуримтлуулахыг хязгаарлана. Хугацааг сонгохдоо build файл, тестийн үр дүн, алдаа оношлох өгөгдөл багт хэдий хугацаанд хэрэгтэйг харгалз.
Устгал яагаад өмнөх хэрэглээг бууруулдаггүй вэ?
Хадгалалтын төлбөрийг сарын эцэст харагдах ганц хэмжээгээр бус, тухайн мөчлөгийн цаг бүрт эзэлсэн хэмжээний нийлбэрээр тооцдог. Нэг GB файлыг нэг цаг хадгалбал нэг GB-цагийн хэрэглээ үүснэ. Artifact устсаны дараа тэр файл шинэ GB-цаг нэмэхгүй ч хадгалагдаж байсан цагуудын хэрэглээ сарын нийлбэрт үлдэнэ.
Одоогийн хадгалалтын хэмжээ болон хуримтлагдсан хэрэглээ хоёр өөр үзүүлэлт. Жишээлбэл, 10 GB хэмжээтэй ганц artifact нэг хоног хадгалагдвал 240 GB-цаг үүснэ. Маргааш нь устгасан үед одоогийн хэмжээ буурах боловч тэр 240 GB-цагийг өнгөрсөн хугацааны бүртгэлээс хасахгүй. Төлбөрийн дэлгэц дэх artifact хэрэглээ шинэчлэгдэхэд хэдэн цаг шаардагдаж болох тул дэлгэцийн өөрчлөлтийг устгалын санхүүгийн нөлөөтэй андуурч болохгүй.
Багцад багтсан үнэгүй хадгалалтын хэмжээ төлөвлөгөөнөөс хамаарна. Actions artifact болон GitHub Packages энэ хэмжээг хуваалцдаг учраас зөвхөн нэг репозитор дахь artifact-ийн нийлбэрийг хараад төлбөрийг тогтоох боломжгүй. Actions cache тусдаа ангилал, тусдаа багц хэмжээтэй; artifact-ийн хэрэглээг cache-ийн үнээр тооцох нь буруу.
Хуучин artifact-ийг хэрхэн устгах вэ?
Шаардлагагүй болсон файлыг хугацаа нь дуусахыг хүлээлгүй устгаж болно. GitHub-ийн artifact устгах заавар репозиторт бичих эрх шаарддаг бөгөөд устгасан artifact-ийг сэргээх боломжгүйг анхааруулдаг. Мөн build log болон artifact-ийн анхдагч хадгалах хугацаа 90 хоног гэж заасан.
- Репозиторын Actions табыг нээж, хэрэгтэй workflow-г сонго.
- Workflow run-уудын жагсаалтаас тухайн run-ыг нээ.
- Artifacts хэсгээс устгах файлын хажуугийн хогийн савны тэмдгийг сонго.
Устгахаас өмнө тэр artifact-ийг release бэлтгэх, deployment хийх эсвэл алдааг дахин шинжлэхэд ашиглах эсэхийг тогтоо. Зөвхөн нэг файл хэрэггүй болсон бол тухайн artifact-ийг сонгон устгах нь run-ыг бүхэлд нь устгахаас илүү нарийн үйлдэл. Run-ыг устгавал түүнд хамаарах бүх artifact хадгалалтаас хамт арилна.
Хадгалах хугацааны тохиргоог өнөөдөр өөрчиллөө гээд өмнө үүссэн artifact-ийн дуусах хугацаа буцаан богиносохгүй. Тиймээс хуучин файлуудын эзэлж буй зайг чөлөөлөх шаардлагатай бол тэдгээрийг тусад нь сонгох хэрэгтэй. Устгал нь цаашдын хэрэглээг зогсоох шийдвэр болохоос өнгөрсөн цагийн хэрэглээг засах арга биш.
Нийтлэг хадгалах хугацааг хаана тохируулах вэ?
Тохиргооны эхний түвшин нь repository-ийн Settings → Actions → General хэсэг. Тэнд хадгалах хугацааны утгыг өөрчилж Save дарснаар шинээр үүсэх объектуудад хэрэглэх суурь хугацааг тогтооно. Энэ нь тухайн репозиторын workflow-уудаас гарах artifact-д нэг ижил бодлого хэрэгтэй үед тохиромжтой.
Олон репозиторт нийтлэг дээд хязгаар хэрэгтэй бол organization эсвэл enterprise түвшний retention бодлогыг ашиглана. Удирддаг түвшинд тогтоосон дээд хязгаараас repository эсвэл тусдаа artifact-ийн хугацаа урт байж болохгүй. Харин нэг репозиторын дотор өөр хэрэгцээтэй файлууд байвал бүгдэд нь ижил богино хугацаа тулгахын оронд тухайн файлыг upload хийдэг алхамд тусгай утга өгөх боломжтой.
Нийтлэг бодлого сонгохдоо файлуудын хэрэглээг ялга. Түр зуурын тестийн үр дүн богино хугацаанд л хэрэг болж болох бол release-д зориулсан build файл илүү удаан шаардлагатай байж болно. Тухайн багийн бодит хэрэгцээ хугацааг шийдэх ёстой: хэт урт хугацаа хэрэглээ хуримтлуулна, харин хэт богино хугацаа шаардлагатай файлыг автоматаар устгана.
Workflow дахь retention-days юуг өөрчилдөг вэ?
Тусдаа artifact-д хугацаа өгөхдөө workflow-ийн actions/upload-artifact алхмын with хэсэгт retention-days утгыг оруулна. GitHub-ийн artifact хадгалах заавар энэ утгыг шинээр upload хийх artifact-д хэрэглэдэг бөгөөд repository, organization эсвэл enterprise-ийн тогтоосон дээд хязгаараас хэтрүүлж болохгүйг тайлбарладаг.
Жишээлбэл, uses: actions/upload-artifact@v4 гэсэн алхмын with хэсэгт retention-days: 7 гэж өгвөл тэр алхмаар шинээр үүсэх artifact-ийг долоон хоног хадгална. Нэг workflow өөр зориулалттай хэд хэдэн artifact upload хийдэг бол хугацааг файл бүрийн хэрэгцээнд тааруулж болно. Ингэснээр репозиторын нийтлэг хугацааг өөрчлөхгүйгээр түр зуурын үр дүнг эрт цэвэрлэнэ.
Энэ утга хуучин run-аас үлдсэн файлд буцаан үйлчлэхгүй. Мөн retention-days нь файлын хэмжээг багасгах тохиргоо биш: ижил хэмжээтэй artifact хадгалагдах цагийн тоог л өөрчилнө. Хэрэв artifact-ийг дараагийн job ашигладаг бол шаардлагатай job-ууд дуусахаас өмнө файл арилчихгүй байх хугацааг сонгох нь чухал.
10 GB-ийг өөр хугацаанд хадгалбал ямар зөрүү гарах вэ?
Дараах нь нөхцөлт жишээ: нэг artifact-ийн хэмжээ 10 GB, сар бүрийг тооцоонд 30 хоногоор авна, мөн энэ 10 GB бүхэлдээ багцад багтсан хэмжээнээс давсан төлбөртэй хэрэглээ гэж үзнэ. Хэмжээ хадгалалтын турш өөрчлөгдөхгүй. Ийм нөхцөлд хугацааг өөрчлөхөд гарах ялгааг GB-цаг болон GB-сараар шууд харьцуулж болно.
- 90 хоног: 10 × 90 × 24 = 21 600 GB-цаг буюу 30 GB-сар; нийт жишиг төлбөр $7.50.
- 30 хоног: 10 × 30 × 24 = 7 200 GB-цаг буюу 10 GB-сар; нийт жишиг төлбөр $2.50.
- 7 хоног: 10 × 7 × 24 = 1 680 GB-цаг буюу ойролцоогоор 2.33 GB-сар; нийт жишиг төлбөр $0.58.
Эдгээр нь нэг artifact-ийг бүтэн хугацаанд нь хадгалсны нийт жишиг дүн юм. 90 хоногийн дүн нэг сарын нэхэмжлэлд бүхэлдээ орохгүй: хэрэглээ сар бүрийн тооцооны мөчлөгт хуваагдана. Бодит төлбөрт мөн тухайн төлөвлөгөөний багц хэмжээ болон GitHub Packages-ийн хамтарсан хэрэглээ нөлөөлнө.
Ижил хэмжээтэй файлд хугацааг 90 хоногоос 7 хоног болгоход хуримтлагдах нийт GB-цаг багасаж байна. Харин аль хэдийн хадгалагдсан цагуудын хэрэглээг шинэ тохиргоо өөрчлөхгүй. Иймээс ирээдүйн artifact-д тохирох retention хугацааг тогтоож, одоо хэрэггүй болсон хуучин artifact-ийг сэргээгдэхгүй устгалын өмнө хэрэгцээг нь нягтлан тусад нь цэвэрлэ.
Мөн уншаарай:
Холбоотой нийтлэлүүд


GitHub Actions эсвэл GitLab CI: ижил pipeline 91 секундээр зөржээ

Backup-аа түгжсэн ч устгаж болно: S3 Object Lock-ийн эрхийг давхар шалга

Google Drive эсвэл Dropbox: 15 GB үнэгүй, харин sync хурд өөр ялагчтай

GitHub Actions-д AWS key хадгалах хэрэггүй: OIDC-г нөхцөлтэй холбо

npm dist-tag OIDC-д шилжив: удаан настай токен хэрэггүй боллоо
Мэдээллийн товхимолд бүртгүүлэх
Web3, AI болон криптоны шинэ мэдээг шууд имэйл хайрцагтаа аваарай.