გადადით შინაარსზე

Hex-პაკეტის ინსტალაცია

Tuist გთავაზობთ Hex-პაკეტს, tuist_ex, რომელიც ინტეგრირდება თქვენს Elixir-პროექტთან ისეთი ფუნქციების ჩასართავად, როგორიცაა ბილდის ანალიტიკა და ტესტების ანალიტიკა. ეს სახელმძღვანელო გაგივლით მის ინსტალაციასა და კონფიგურაციას.

პაკეტი მოითხოვს Elixir 1.18 ან უფრო ახალ ვერსიას. მას არ სჭირდება Tuist-ის ბრძანებათა ხაზის ინტერფეისი.

1. პროექტის შექმნა#

შექმენით პროექტი Tuist-ის დაფაზე და აირჩიეთ Mix (Elixir) როგორც მისი ბილდის სისტემა. მისი იდენტიფიკატორი, account/project, აკავშირებს თქვენს Mix-პროექტს მასთან.

2. პაკეტის დამატება#

დაამატეთ tuist_ex დამოკიდებულებებში თქვენს mix.exs-ში:

elixir
defp deps do
[
{:tuist_ex, "~> 0.10", runtime: false}
]
end

შემდეგ მიიღეთ ის:

bash
mix deps.get

runtime: false ტოვებს Tuist-ს თქვენი მოქმედი აპლიკაციის გარეთ. გააგრძელეთ Elixir-ით დაწყება კეშირების, ბილდის ანალიტიკისა და ტესტების ანალიტიკის ერთად კონფიგურაციისთვის. ქვემოთ მოცემული სექციები მოიცავს ავთენტიკაციისა და კონფიგურაციის დეტალებს.

3. თქვენი გუნდისა და უწყვეტი ინტეგრაციის ავთენტიკაცია#

ყველა გუნდის წევრი ასრულებს შემდეგს, რათა მიიღოს წვდომა Tuist-ის ფუნქციებზე თავის მანქანაზე:

bash
mix tuist.login

ის ბეჭდავს მოკლე შესვლის კოდს, ხსნის ბრაუზერს, სადაც თქვენ შეჰყავთ ის, და ელოდება თქვენს ავტორიზაციას. ბრაუზერის გარეშე შესასვლელად, გადაეცით თქვენი სარწმუნოებები:

bash
mix tuist.login --email [email protected] --password secret

როდესაც იყენებთ თვითმასპინძელ ან ლოკალურ Tuist-სერვერს, დააყენეთ მისი საბაზისო URL mix.exs-ში, ან გადაეცით ის --url-ით:

bash
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 ნებართვა:

yaml
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 გარემოში, ამიტომ ამოცანას უნდა დაიწყოს თავიდან მეორე პროცესში ტესტების გარემოსთვის. დაამატეთ ამოცანები სასურველ გარემოებში ამის გამოსატოვებლად:

elixir
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.

შემდეგი ნაბიჯები#

პაკეტის დაყენებისა და კონფიგურაციის შემდეგ, შეგიძლიათ გამოიყენოთ: