Hex-პაკეტის ინსტალაცია
Tuist გთავაზობთ Hex-პაკეტს, tuist_ex, რომელიც ინტეგრირდება თქვენს Elixir-პროექტთან ისეთი ფუნქციების ჩასართავად, როგორიცაა ბილდის ანალიტიკა და ტესტების ანალიტიკა. ეს სახელმძღვანელო გაგივლით მის ინსტალაციასა და კონფიგურაციას.
პაკეტი მოითხოვს Elixir 1.18 ან უფრო ახალ ვერსიას. მას არ სჭირდება Tuist-ის ბრძანებათა ხაზის ინტერფეისი.
1. პროექტის შექმნა#
შექმენით პროექტი Tuist-ის დაფაზე და აირჩიეთ Mix (Elixir) როგორც მისი ბილდის სისტემა. მისი იდენტიფიკატორი, account/project, აკავშირებს თქვენს Mix-პროექტს მასთან.
2. პაკეტის დამატება#
დაამატეთ tuist_ex დამოკიდებულებებში თქვენს mix.exs-ში:
defp deps do
[
{:tuist_ex, "~> 0.10", runtime: false}
]
end
შემდეგ მიიღეთ ის:
mix deps.get
runtime: false ტოვებს Tuist-ს თქვენი მოქმედი აპლიკაციის გარეთ. გააგრძელეთ Elixir-ით დაწყება კეშირების, ბილდის ანალიტიკისა და ტესტების ანალიტიკის ერთად კონფიგურაციისთვის. ქვემოთ მოცემული სექციები მოიცავს ავთენტიკაციისა და კონფიგურაციის დეტალებს.
3. თქვენი გუნდისა და უწყვეტი ინტეგრაციის ავთენტიკაცია#
ყველა გუნდის წევრი ასრულებს შემდეგს, რათა მიიღოს წვდომა Tuist-ის ფუნქციებზე თავის მანქანაზე:
mix tuist.login
ის ბეჭდავს მოკლე შესვლის კოდს, ხსნის ბრაუზერს, სადაც თქვენ შეჰყავთ ის, და ელოდება თქვენს ავტორიზაციას. ბრაუზერის გარეშე შესასვლელად, გადაეცით თქვენი სარწმუნოებები:
როდესაც იყენებთ თვითმასპინძელ ან ლოკალურ Tuist-სერვერს, დააყენეთ მისი საბაზისო URL mix.exs-ში, ან გადაეცით ის --url-ით:
mix tuist.login --url http://localhost:8080
შეინარჩუნეთ ჰოსტის სახელის მართლწერის თანმიმდევრულობა. მაგალითად, localhost-ისთვის შენახული შესვლა განცალკევებულია 127.0.0.1-ისთვის შენახულისგან.
GitHub Actions-ზე, CircleCI-ზე და Bitrise-ზე, უწყვეტ ინტეგრაციას არ სჭირდება შესვლის ნაბიჯი. პირველად, როდესაც ამოცანა აგზავნის ანგარიშს, ის ცვლის პროვაიდერის OpenID Connect ტოკენს Tuist-ის ტოკენზე. შეაერთეთ თქვენი GitHub-რეპოზიტორია თქვენს Tuist-პროექტთან და GitHub Actions-ზე მიანიჭეთ სამუშაოს id-token: write ნებართვა:
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: '1.18'
otp-version: '27'
- run: mix deps.get
- run: mix test
ნებისმიერი სხვა OpenID Connect იდენტობის პროვაიდერით, როგორიცაა Fly.io Machines, დააკონფიგურირეთ სამუშაო იდენტობის ნდობის პოლიტიკა თქვენი ანგარიშის პარამეტრები → ავთენტიკაცია გვერდის სამუშაო იდენტობები სექციაში, რაც CI-ს ანიჭებს წვდომას იმ ანგარიშის ყველა მიმდინარე და მომავალ პროექტზე. დააყენეთ TUIST_OIDC_ACCOUNT Tuist-ის ანგარიშზე, რომელსაც ეკუთვნის პროექტი, და მიეწოდეთ ახლად გამოშვებული იდენტობის ტოკენი პოლიტიკის აუდიტორიით TUIST_OIDC_TOKEN-ის მეშვეობით. ინტეგრაცია მას ავტომატურად ცვლის, როდესაც არ არის ხელმისაწვდომი ანგარიშის ტოკენი ან მოქმედი შენახული შესვლა; mix tuist.login ასევე იღებს მას CI-ს გარეთ. ავტომატური გაცვლები იყენებენ ვადაუწურავ სესიას მხოლოდ იმავე სერვერის, ანგარიშისა და მიწოდებული იდენტობის ტოკენისთვის. ამ იდენტობის შეცვლა იწვევს ახალ გაცვლას, ხოლო ცარიელი მიწოდებული იდენტობა ვერდება ადრეული სესიის ხელახლა გამოყენების ნაცვლად. Tuist-ის სესიები გრძელდება ერთი საათი განახლების ტოკენების გარეშე, ამიტომ უფრო ხანგრძლივი სამუშაოებისთვის, გამოუშვით ახალი იდენტობის ტოკენი და გაუშვით mix tuist.login ხელახლა სესიის ამოწურვამდე. მიჰყევით სამუშაო იდენტობის დაყენებას და Fly.io-ს მაგალითს.
ფორკებიდან მოსული Pull Request-ები არ იღებენ OpenID Connect ტოკენს, ამიტომ მათი გაშვებები არ იგზავნება ანგარიშში და ჩვეულებრივად გადიან ან ვერდებიან. სხვა პროვაიდერებზე, დააყენეთ TUIST_TOKEN გარემოს ცვლადი ანგარიშის ტოკენზე. მიჰყევით უწყვეტი ინტეგრაციის ავთენტიკაციის სახელმძღვანელოს ერთის შესაქმნელად.
4. განაგრძეთ mix test-ისა და mix compile-ის გამოყენება#
საერთო დაყენება აინსტალირებს კომპილაციისა და ტესტების ალიასებს თქვენთვის. mix test test/my_app_test.exs:12 --trace აგზავნის გაშვების ანგარიშს იმავე გამომავალი მონაცემებითა და გასვლის კოდით, ხოლო კომპილაციის ინტეგრაცია მოიცავს ბილდებს, რომლებიც გამოწვეულია mix test-ით ან mix phx.server-ით. კომპილაცია, რომელიც ვერ პოულობს გასაკეთებელს, არ იგზავნება ანგარიშში.
ამოცანები ასევე მუშაობენ, როდესაც მათ საკუთარი სახელით იძახებთ. Mix-ი იწყებს ამოცანას, რომელიც ასეა დატყპილი dev გარემოში, ამიტომ ამოცანას უნდა დაიწყოს თავიდან მეორე პროცესში ტესტების გარემოსთვის. დაამატეთ ამოცანები სასურველ გარემოებში ამის გამოსატოვებლად:
def cli do
[preferred_envs: ["tuist.test": :test, "tuist.test.build": :test]]
end
კონფიგურაციის ცნობარი#
შემდეგი პარამეტრები ხელმისაწვდომია tuist-ის ქვეშ mix.exs-ის პროექტის პარამეტრებში:
| პარამეტრი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
project |
String |
არ არის (სავალდებულო) | პროექტის იდენტიფიკატორი account/project ფორმატში. |
url |
String |
"https://tuist.dev" |
Tuist-სერვერის საბაზისო URL. |
cache |
boolean ან საკვანძო სიტყვების სია |
გამორთული | დაყენება ააქტიურებს დამოკიდებულებების კეშირებას. იხილეთ Elixir-ის კეში გამონაკლისებისა და დამატებითი შეყვანებისთვის. |
test_retries |
integer |
0 |
რამდენჯერ უნდა განმეორდეს ვერშეცდომილი ტესტები; იხილეთ ტესტების განმეორება. |
tags |
სია String-ის |
[] |
ტეგები, რომლებიც მიებას ყოველ ბილდს; იხილეთ მორგებული მეტამონაცემები. |
values |
რუკა | %{} |
საკვანძო-მნიშვნელობის მონაცემები, რომლებიც მიებას ყოველ ბილდს. |
გარემოს ცვლადებს აქვთ უპირატესობა mix.exs-ზე:
| ცვლადი | აღწერა |
|---|---|
TUIST_PROJECT |
პროექტის იდენტიფიკატორი account/project ფორმატში. |
TUIST_URL |
Tuist-სერვერის საბაზისო URL. |
TUIST_TOKEN |
აუთენტიფიკაციის ტოკენი, შენახული შესვლის ნაცვლად. |
TUIST_OIDC_TOKEN |
ახლად გამოსხივებული OpenID Connect იდენტობის ტოკენი, რომელიც იცვლება Tuist-ის ტოკენზე. მისი აუდიენსია უნდა იყოს tuist GitHub Actions-ისა და Bitrise-ისთვის, ან ემთხვეოდეს ანგარიშის სამუშაო იდენტობას სხვა პროვაიდერებისთვის. გამოიყენება mix tuist.login-ის მიერ, ან როგორც სათადარიგო ვარიანტი, როდესაც არ არის ხელმისაწვდომი ანგარიშის ტოკენი ან მოქმედი შენახული შესვლა. |
TUIST_OIDC_ACCOUNT |
Tuist-ის ანგარიშის სახელი, რომელიც ფლობს პროექტს. აუცილებელია ტოკენის გაცვლისას ანგარიშის სამუშაო იდენტობის მეშვეობით. ის ირჩევს არსებულ სამუშაო იდენტობებს შორის და თავისთავად არ ანიჭებს წვდომას. |
TUIST_TEST_RETRIES |
რამდენჯერ უნდა განმეორდეს ვერშეცდომილი ტესტები. |
TUIST_TAGS |
მძიმით გამოყოფილი ტეგები, რომლებიც მიებას ბილდს. |
TUIST_VALUES |
მძიმით გამოყოფილი key=value წყვილები, რომლებიც მიებას ბილდს. |
TUIST_DEBUG |
დააყენეთ 1-ზე, რათა დაიბეჭდოს მიზეზი, თუ რატომ ვერ გაიგზავნა ანგარიში. |
ანგარიშის გაგზავნა არასდროს ცვლის mix test-ის ან mix compile-ის გამოსვლის კოდს. თუ ანგარიშის გაგზავნა შეუძლებელია, ამოცანა არაფერს ამბობს, თუ არ არის დაყენებული TUIST_DEBUG=1.
შემდეგი ნაბიჯები#
პაკეტის დაყენებისა და კონფიგურაციის შემდეგ, შეგიძლიათ გამოიყენოთ:
- დამოკიდებულებების კეშირება კომპილირებული დამოკიდებულებების ხელახლა გამოსაყენებლად ლოკალურად და CI ბილდებში.
- ბილდის ინსაიტები კომპილაციის დროის, გაფრთხილებებისა და ბილდების შემაფერხებელი ფაქტორების თვალყურის დევნებისთვის.
- ტესტების ინსაიტები ტესტების შესრულების თვალყურის დევნებისთვის თითოეულ ტესტამდე.
- არასტაბილური ტესტები პერიოდულად მწყვარე ტესტების აღმოჩენისა და თვალყურის დევნებისთვის.
- ტესტების დაყოფა ტესტების გადანაწილებისთვის continuous integration რანერებზე.