კონტენტზე გადასვლა

Gradle-ის აგების ინსაიტები

Tuist-ის Gradle პლაგინს შეუძლია აგების ანალიტიკის გაგზავნა Tuist-ში, რაც საშუალებას გაძლევთ დაინახოთ ამოცანების შესრულება და აგების წარმადობა.

ატვირთვის ქცევის კონფიგურაცია#

ნაგულისხმევად:

  • ლოკალური აგებებისთვის აგების ანალიტიკა იტვირთება ფონურ რეჟიმში.
  • CI გაშვებებისთვის აგების ანალიტიკა იტვირთება წინა პლანზე, რათა თავიდან აიცილოთ ტელემეტრიის დაკარგვა ხანმოკლე აგენტებზე.

ამ ქცევის კონტროლი შესაძლებელია uploadInBackground-ის გამოყენებით tuist გაფართოებაში:

kotlin
tuist {
uploadInBackground = false // always upload in the foreground
}

კონფიგურაციის ცნობარი#

uploadInBackground პარამეტრი ხელმისაწვდომია tuist გაფართოების ბლოკში settings.gradle.kts-ში:

პარამეტრიტიპინაგულისხმევიაღწერა
uploadInBackgroundBoolean?null (ლოკალურად — ფონურ რეჟიმში, CI-ზე — წინა პლანზე)უნდა აიტვირთოს თუ არა აგების ინსაიტები ფონურ რეჟიმში ლოკალური აგებებისთვის.

ეს პარამეტრი არ მოქმედებს დისტანციური ქეშის პარამეტრებზე buildCache ბლოკში.

მოქმედის პრეტენზიის მოხსენება#

აგებისა და ტესტირების მოხსენების მოთხოვნები მოიცავს არასავალდებულო x-tuist-actor-id ჰედერს მხოლოდ მაშინ, როდესაც თქვენ ცალსახად მიანიჭებთ TUIST_ACTOR_ID-ს ორგანიზაციის დონის იარლიყს ან კონფიგურირებთ buildInsights.actorId-ს თქვენს პარამეტრებში. ნაგულისხმევად იარლიყი არ იგზავნება და პლაგინი არ აღმოაჩენს ოპერაციული სისტემის მომხმარებლის სახელებს. გარემოს გადაფარვას აქვს უპირატესობა. დააყენეთ რომელიმე გადაფარვა ცარიელ სტრიქონად, რათა გამოტოვოთ მოხსენებული იდენტიფიკატორი; ეს არ შლის ინდივიდუალური სერთიფიკატებით დამყარებულ იდენტობას. არასწორი გადაფარვები გამოტოვებენ პრეტენზიას ნაცვლად უკან დაბრუნების. თუ მორგებული პროქსი უარყოფს უცნობ ჰედერებს, გამოეთიშეთ TUIST_ACTOR_ID=""-ით.

kotlin
tuist {
buildInsights {
actorId = providers.environmentVariable("CORPORATE_ACTOR_ID").getOrElse("")
}
}

მოქმედის იდენტიფიკატორები არის 1–128 ბაიტიანი არა-სივრცული ბეჭდვადი ASCII სიმბოლოები. ისინი ხილულია ნებისმიერი პირისთვის, ვისაც შეუძლია ნახოს პროექტის მოხსენებები, მათ შორის საჯარო მაყურებლებისთვის, როდესაც პროექტი საჯაროა, და ექსპორტირდება მოხსენებებთან ერთად. არ ჩართოთ საიდუმლოებები ან პირადი ინფორმაცია, რომლის გამოქვეყნებაც არ გსურთ. დადასტურებულ ინდივიდუალურ სერთიფიკატს აქვს უპირატესობა დაშბორდში; კლიენტების მიერ გაგზავნილი იდენტიფიკატორები სხვა შემთხვევაში ცალსახად არის დაუდასტურებელი. ისინი არასდროს ანიჭებენ ნებართვებს ან არ აკავშირებენ ავტომატურად Tuist მომხმარებელთან. ძველი სერვერები იგნორირებენ ატრიბუციის ჰედერს, ხოლო ახალი სერვერები განაგრძობენ ძველი კლიენტების მიღებას მის გარეშე. ახალი საერთო-ტოკენის მოხსენებები იდენტიფიკატორის გარეშე აჩვენებენ უცნობი-ს, გამომქვეყნებელი ორგანიზაციის ნაცვლად; ისტორიული მოხსენებები ინარჩუნებენ წინა ატრიბუციას. აგებისა და ტესტირების სიები ყოფენ დადასტურებული მომხმარებლის ფილტრებს დაუდასტურებელი მოხსენებული-იდენტიფიკატორის ფილტრებისგან.

ქსელში სანდო გამოქვეყნება#

თვითმასპინძლობით განთავსებულ ინსტალაციებს შეუძლიათ ცალსახად დაუშვან Gradle აგებისა და ტესტირების მოხსენებები მათი სანდო ქსელიდან დეველოპერის სერთიფიკატების გარეშე. ოპერატორმა ჯერ უნდა კონფიგურირება TUIST_NETWORK_TRUSTED_INSIGHTS_ACCESS=true ინსტანციაზე და გადატვირთოს ის. ეს ვრცელდება ყველა მხარდაჭერილ პროექტზე; დაშბორდზე შესაბამისი პარამეტრი არ არსებობს. იხილეთ თვითმასპინძლობის სახელმძღვანელო.

კონფიგურირეთ დანიშნულების ადგილი ერთხელ რეპოზიტორიაში:

kotlin
tuist {
project = "organization/project"
url = "https://tuist.internal.example"
buildCache { enabled = false }
}

აგებისა და ტესტირების მოხსენებებს არ სჭირდებათ ავთენტიფიცირებული ქეშის ბოლოწერტილის აღმოჩენა. გათიშეთ ქეში, თუ ინსტანცია ცალკე არ ააქტიურებს ქსელში სანდო ქეშის წვდომას ან დეველოპერები არ უზრუნველყოფენ ტოკენებს. ხელმოუწერელი ტესტის მოხსენებები გამოტოვებენ შარდისა და არსებული აგების მითითებებს და არ ამუშავებენ კარანტინის ან არამდგრადობის ავტომატიზაციებს. კარანტინის ძიება გამოტოვებულია, როდესაც სერთიფიკატები ნამდვილად არ არსებობს; მოქმედი სერთიფიკატების შემთხვევაში ინარჩუნება არსებული ავთენტიფიცირებული ქცევა. თუ სერთიფიკატები არსებობს, ისინი კვლავ გამოიყენება და არასწორი სერთიფიკატები ასრულებენ შეცდომით ნაცვლად სერთიფიკატების გარეშე გამოქვეყნებაზე გადასვლის. როდესაც სერთიფიკატები არ არსებობს, პლაგინი ავტომატურად აღმოაჩენს, უშვებს თუ არა თვითმასპინძლობითი სერვერი სერთიფიკატების გარეშე მოხსენებას. არ არის საჭირო არც კლიენტის ფლაგი და არც buildInsights პარამეტრი. განაახლეთ სერვერის ყველა რეპლიკა აღმოჩენის შესაძლებლობის მქონე ვერსიამდე სანამ განაახლებთ სერთიფიკატების გარეშე კლიენტებს. უფრო ძველ სერვერებს აღმოჩენის გარეშე, გათიშულ ინსტანციებსა და აღმოჩენის შეცდომებს კვლავ სჭირდებათ ავთენტიფიკაცია; ავთენტიფიცირებული გამოქვეყნება რჩება თავსებადი. ცალსახად ცარიელი TUIST_TOKEN ასრულებს შეცდომით ნაცვლად სერთიფიკატების გარეშე გამოქვეყნების ჩართვის. ფორკის ან Dependabot სამუშაოებისთვის საიდუმლოებების გარეშე, წაშალეთ ეს ცვლადი ნაცვლად მისი ცარიელ სტრიქონად განსაზღვრის.

სერვერი ანიჭებს სერთიფიკატების გარეშე მოხსენების ID-ებს. წარდგენის განმეორებამ შეიძლება შექმნას მეორე მოხსენება; ეს რეჟიმი არ იძლევა იდემპოტენტური განმეორებების ან ავთენტიფიცირებულ ტესტის მოხსენებებთან კორელაციის გარანტიას. ასეთმა მოხსენებებმა ვერ გამოიწვევს VCS კომენტარები ან ავტომატური შეცდომის-აგენტის მოვლენები. ქსელური წვდომა არის გამოქვეყნების ნდობის საზღვარი, არა მოხსენებული მოქმედის იდენტობის დადასტურება.

მორგებული მეტამონაცემები#

მიამაგრეთ ტეგები და გასაღები-მნიშვნელობის მონაცემები Gradle აგებებს, რათა შეადაროთ გაშვებები სხვადასხვა გუნდების, აპარატურის ან სამუშაო ნაკადების მიხედვით. ტეგები ხელმისაწვდომია დაშბორდის ფილტრებში, ხოლო მნიშვნელობები ჩანს თითოეული აგების დეტალურ გვერდზე და აპლიკაციის პროგრამირების ინტერფეისსა და Model Context Protocol ინსტრუმენტებში.

დააყენეთ მეტამონაცემები გარემოს ცვლადებით:

bash
export TUIST_BUILD_TAGS="nightly,android"
export TUIST_BUILD_VALUE_TICKET="TUIST-123"
export TUIST_BUILD_VALUE_RUNNER="macos-14"

ასევე შეგიძლიათ კონფიგურირება მეტამონაცემების settings.gradle.kts-ში:

kotlin
tuist {
buildInsights {
tag("nightly")
tag("android")
value("ticket", "TUIST-123")
value("runner", "macos-14")
}
}

როდესაც ერთი და იგივე მნიშვნელობა კონფიგურირებულია ორივე ადგილას, უპირატესობა ენიჭება მნიშვნელობას settings.gradle.kts-ში.

ტეგები უნდა შეიცავდნენ მხოლოდ ასოებს, რიცხვებს, დეფისებს და ქვედა ხაზებს. აგებას შეიძლება ჰქონდეს 50-მდე ტეგი და თითოეული ტეგი შეიძლება შეიცავდეს 50-მდე სიმბოლოს. აგებას შეიძლება ჰქონდეს 20-მდე გასაღები-მნიშვნელობის ჩანაწერი, თითოეული გასაღები შეიძლება შეიცავდეს 50-მდე სიმბოლოს და თითოეული მნიშვნელობა შეიძლება შეიცავდეს 500-მდე სიმბოლოს. ეს იგივე სერვერის მხარის ლიმიტებია, რომლებიც გამოიყენება Xcode აგების მეტამონაცემებისთვის. პლაგინი ტოვებს არასწორ ტეგებსა და ზედმეტად დიდ ან ცარიელ მეტამონაცემების ჩანაწერებს მოხსენების გაგზავნამდე, ასე რომ არასწორმა კონფიგურაციამ ვერ შეუშალოს ხელი აგების ინსაიტების მოხსენების დანარჩენი ნაწილის შენახვას. გამოიყენეთ გასაღები-მნიშვნელობის მეტამონაცემები იმ მნიშვნელობებისთვის, რომლებიც არ აკმაყოფილებენ ტეგის შეზღუდვას.

მორგებული მეტამონაცემები ხილულია პროექტის წევრებისთვის დაშბორდში და აპლიკაციის პროგრამირების ინტერფეისისა და Model Context Protocol ინსტრუმენტების მეშვეობით. არ გამოიყენოთ ის სერთიფიკატების, წვდომის ტოკენების ან სხვა მგრძნობიარე მონაცემებისთვის. Tuist ინარჩუნებს Gradle აგების მონაცემებს, მათ შორის ამ მეტამონაცემებს, 90 დღის განმავლობაში. დეტალებისთვის იხილეთ მონაცემთა შენახვის პოლიტიკა.