Rust ბილდების ანალიტიკა
Build Insights გეხმარებათ იპოვოთ, რა ანელებს თქვენს Cargo ბილდებს და აღმოაჩინოთ რეგრესიები მანამ, სანამ ისინი მთელ გუნდს შეეხება. შეგიძლიათ შეადაროთ ლოკალური ბილდები CI-სთან, ნახოთ, როგორ იცვლება ბილდის დროები და შეამოწმოთ თითოეულ ბილდში კომპილირებული კრეიტები.
- მიჰყევით Rust პროექტის დაყენებას თქვენი პროექტის დასაკავშირებლად და ავთენტიკაციისთვის.
ბილდების ანგარიშგება#
გაუშვით თქვენი ჩვეულებრივი Cargo ბრძანებები Tuist-ის მეშვეობით:
tuist cargo build --workspace
tuist cargo check --all-targets
tuist cargo +nightly build --features tracing
თუ იყენებთ mise-ს, დააყენეთ Cargo wrapper, რათა განაგრძოთ ჩვეულებრივი cargo ბრძანებების გამოყენება. თქვენი არგუმენტები, ინსტრუმენტების ჯაჭვის შერჩევა, გამომავალი მონაცემები და გასვლის კოდი უცვლელი რჩება.
იპოვეთ, რა ანელებს ბილდს#
გახსენით ბილდი Builds → Build Runs-დან დაფაზე. გამოიყენეთ თარიღის, გარემოს და Rust-ის ვერსიის ფილტრები მსგავსი ბილდების შესადარებლად. ბილდები და მათი ქეშის მრიცხველები ასევე ხელმისაწვდომია tuist build cargo list-ისა და tuist build cargo show-ის, GET /api/projects/{account_handle}/{project_handle}/cargo/builds-ის, ასევე list_cargo_builds-ისა და get_cargo_build MCP ხელსაწყოების მეშვეობით.
Overview-ზე გამოიყენეთ Compiler jobs ნელი კრეიტების საპოვნელად. დაალაგეთ Duration-ის ან Started after-ის (დრო Cargo ბრძანების დაწყებიდან) მიხედვით, ან მოძებნეთ კრეიტის სახელით ან ძირითადი საწყისი ფაილით.
თითოეული სტრიქონი წარმოადგენს ერთ rustc გამოძახებას კრეიტისთვის, რომელიც შეიძლება შეიცავდეს მრავალ საწყის ფაილს. Crate root განსაზღვრავს მის ძირითად საწყის ფაილს; ხანგრძლივობა ეხება მთლიან კომპილატორის სამუშაოს, არა მხოლოდ ამ ფაილს. კრეიტი შეიძლება გამოჩნდეს ერთზე მეტჯერ სხვადასხვა სამიზნეების ან კონფიგურაციებისთვის. კომპილატორის შეტყობინებები დაჯგუფებულია Warnings-ში და Errors-ში.
კრეიტების თვალყურის დევნა ბილდებს შორის#
პროექტებისთვის, რომლებიც ჩართულია კრეიტების ისტორიის ეტაპობრივად დანერგვაში, Builds → Crates აჩვენებს დაფიქსირებულ კრეიტებს და მათ კომპილაციის ისტორიას. გახსენით კრეიტი, რათა შეადაროთ მისი დაფიქსირებული ხანგრძლივობები და შედეგები ბილდებს შორის, შემდეგ კი მიჰყევით კომპილაციას უკან მის Cargo ბილდამდე. იგივე ინვენტარი ხელმისაწვდომია /cargo/crates-ის მეშვეობით პროექტის API-ში და საერთო MCP build-entity ხელსაწყოებში kind: cargo_crates-ით.
კრეიტები დაჯგუფებულია მათი ზუსტად დაფიქსირებული ძირითადი გზის, სახელისა და ტიპის მიხედვით. Checkout გზების ცვლილებამ შეიძლება გაყოს ისტორიები; პროფილები, ფუნქციები და სამიზნე ტრიპლეტები არ განირჩევა. ეს არის დაფიქსირებული კომპილატორის სამუშაოების ინვენტარი, არა თქვენი workspace-ის ყველა კრეიტი. ქეშირებული ან აქტუალური კრეიტები არ ქმნიან კომპილაციის ნიმუშებს.
ბილდის ანგარიშების მიკუთვნება#
ავთენტიკირებული ანგარიშები აიდენტიფიცირებენ პირს პირადი სერთიფიკატების უკან. გაზიარებულ სერთიფიკატებს არ სჭირდებათ ინდივიდის იდენტიფიცირება. სურვილისამებრ დააყენეთ TUIST_ACTOR_ID სტაბილურ ოპაკურ იდენტიფიკატორზე ანგარიშგების მანქანაზე; ის გამორთულია ნაგულისხმევად და გამოისახება როგორც დაუდასტურებელი განაცხადი, რომელიც არასდროს გამოიყენება ავტორიზაციისთვის. ძველმა სერვერებმა შეიძლება დაიგნორონ განაცხადი. არ ჩადოთ მასში საიდუმლოებები.
დროის მაჩვენებლების წაკითხვა#
ბილდის ხანგრძლივობა არის დრო, რაც მთლიანმა Cargo ბრძანებამ წაიღო. კომპილატორის სამუშაოები შეიძლება პარალელურად შესრულდეს, ამიტომ მათი ხანგრძლივობები არ ჯამდება ბილდის ხანგრძლივობაში.
Cargo აკომპილირებს მხოლოდ იმ კრეიტებს, რომლებსაც გადაკომპილაცია სჭირდებათ. კრეიტები, რომლებიც უკვე აქტუალურია, არ გამოჩნდებიან კომპილატორის სიაში. Tuist-ის კომპილაციის ქეშით, აღდგენილი სამუშაოები ჩანს ქეშის გაზომვებში, არა კომპილატორის შესრულებად.
Tuist არ ზომავს ბილდის სკრიპტებს ცალ-ცალკე და არ აჩვენებს ბილდის Timeline-ს. დიდი ბილდი აჩვენებს პირველ 500 კომპილატორის სამუშაოს, შეტყობინებით, თუ მეტი იყო დაფიქსირებული.
ქეშის გაზომვების წაკითხვა#
tuist cargo შეიცავს ექსპერიმენტულ კომპილაციის ქეშს, რომელიც განხორციელებულია Tuist CLI-ში. მიჰყევით Rust ქეშის სახელმძღვანელოს დაყენების, Kura-ს მეშვეობით დისტანციური კითხვებისა და ჩაწერების, მხარდაჭერილი კომპილაციების და პრობლემების გადაჭრისთვის.
გახსენით Cargo Cache პროექტის გვერდით პანელში, რათა თვალყური ადევნოთ ქეშში მოხვედრის მაჩვენებლებს და დაფიქსირებულ გადაცემის, ლატენტურობისა და გამტარუნარიანობის გაზომვებს ბილდებს შორის. გაფილტრეთ თარიღით ან გარემოთი, გადაერთეთ ყოველდღიურ ტენდენციებსა და ინდივიდუალური ბილდის ქეშში მოხვედრის მაჩვენებლებს შორის, ან გახსენით ბოლო ბილდი მისი ქეშის აქტივობის შესამოწმებლად. ბილდები ქეშის გაზომვების გარეშე რჩება მიუწვდომლად, ნულოვნად არ ითვლება.
გახსენით ბილდის Cache ჩანართი, რათა ნახოთ ამოცანების ქეშში მოხვედრა, ამოცანების გამოტოვება, ქეშში მოხვედრის მაჩვენებელი და ჩამოტვირთული და ატვირთული ბაიტები. ჩანართი ჩნდება, როდესაც ბილდი ანგარიშგებს ქეშის მონაცემებს.
- Cacheable Tasks აჩვენებს, რომელმა კომპილატორისა და ბილდის სკრიპტის ამოცანებმა გამოიყენეს ქეშირებული გამომავალი მონაცემები. მოძებნეთ ან გაფილტრეთ ამოცანები, შეამოწმეთ ქეშის კითხვის/ჩაწერის ლატენტურობა და გაშალეთ სტრიქონი მისი გამომავალი მონაცემების სანახავად.
- CAS Outputs აჩვენებს არტეფაქტების ჩამოტვირთვებსა და ატვირთვებს, მათი ზომებით, ხანგრძლივობებითა და გამტარუნარიანობით. დიაგრამა ითვლის დასრულებულ გადაცემებს; უკვე არსებული არტეფაქტები და წარუმატებელი მცდელობები რჩება ცხრილში.
Hit ნიშნავს, რომ ქეშირებული გამომავალი მონაცემები ხელახლა იქნა გამოყენებული. Missed ნიშნავს, რომ ამოცანა კომპილირდა. ქეშში მოხვედრა არ იყოფა ლოკალურად და დისტანციურად; CAS Outputs აჩვენებს დაფიქსირებულ არტეფაქტის ოპერაციებს.
თუ დეტალური ჩანაწერები აკლია ან არასრულია, გვერდი აჩვენებს შეტყობინებას. შეჯამება კვლავ ფარავს მთლიან ბილდს. თავიდან აცილებული კომპილატორის სამუშაო შეფასება არ არის შენახული ბილდის დრო.
ქეში ექსპერიმენტულია და ვალიდირებულია Apple silicon Mac-ებზე. ბიბლიოთეკები ქეშირდება კომპილატორის მიერ წაკითხული წყაროების მიხედვით; ბილდის სკრიპტები, პროცედურული მაკროსები, შესრულებადი ფაილები და ნატიური კოდი ქეშირდება მხოლოდ Apple silicon Mac-ებზე. ქეშის გასაღებები ანაცვლებს checkout და ინსტრუმენტების ჯაჭვის გზებს placeholder-ებით, ასე რომ, იგივე მანქანაზე სხვა გზაზე checkout ხელახლა იყენებს მათ. ინკრემენტული კომპილაციები ჩვეულებრივად კომპილირდება.
ბილდები, რომლებიც ტესტებს აწარმოებენ#
tuist cargo test ანგარიშგებს მთლიანი ბრძანების ხანგრძლივობას, მისი ტესტების ჩათვლით. ის ასევე ანგარიშგებს ინდივიდუალურ ტესტის შედეგებს, doctests-ის ჩათვლით, Rust Test Insights-ის მეშვეობით. ინდივიდუალური ტესტის შედეგები ჩანს Tests-ქვეშ; ბრძანების ხანგრძლივობა ჩანს ბილდის ანალიტიკაში.
სხვა კომპილატორის ხელსაწყოები#
Tuist ინარჩუნებს არსებულ კომპილატორის wrappers-ებს, რომლებიც კონფიგურირებულია RUSTC_WRAPPER-ის, CARGO_BUILD_RUSTC_WRAPPER-ის ან Cargo კონფიგურაციის მეშვეობით, და ტოვებს RUSTC_WORKSPACE_WRAPPER-ს უცვლელად. წინასწარ არსებული გლობალური wrapper თიშავს Tuist-ის ქეშსა და კომპილატორის დამკვირვებელს: Tuist ვერ ადგენს, ნამდვილად გაუშვა თუ არა ამ wrapper-მა rustc. მორგებული workspace wrappers-ები ასევე შეიძლება დატოვონ ნაკლები კომპილატორის სამუშაო ანგარიშში.
Tuist პოულობს Cargo-ს rustup-ის მეშვეობით. თუ იყენებთ მორგებულ ინსტალაციას, დააყენეთ TUIST_CARGO_EXECUTABLE მის შესრულებად გზაზე. Cargo-ს გამოძახება პირდაპირი ინსტრუმენტების ჯაჭვის გზით ავლით mise-ის wrapper-ს. Cargo alias ვერ ჩაანაცვლებს ჩაშენებულ ბრძანებას, როგორიცაა build.
თუ იყენებთ Cargo-ის nightly -C ოფციას, ჯერ გადადით workspace-ში: Tuist აწვდის -C ბრძანებებს, მაგრამ არ აგროვებს მათი ბილდის დროს.
პრობლემების მოგვარება#
თუ ბილდი არ ჩანს დაშბორდზე, ჩართეთ debug გამოსავალი, რათა ნახოთ, რატომ არ გაიგზავნა მისი ანგარიში:
TUIST_DEBUG=1 tuist cargo build --workspace
ანგარიშგება არ ცვლის თქვენი ბილდის შედეგს.