İçeriğe atla

Hex paketini kurun

Tuist, Elixir projenizle entegre olan ve derleme içgörüler ile test içgörüler gibi özellikleri etkinleştiren bir Hex paketi olan tuist_ex sunar. Bu kılavuz, paketi kurmanıza ve yapılandırmanıza yardımcı olur.

Paket, Elixir 1.18 veya sonraki sürümleri gerektirir. Tuist komut satırı arayüzüne ihtiyaç duymaz.

1. Projeyi oluşturun#

Tuist kontrol panelinde bir proje oluşturun ve derleme sistemi olarak Mix (Elixir) seçeneğini belirleyin. Projenizin tanıtıcısı olan account/project, Mix projenizi Tuist projesine bağlar.

2. Paketi ekleyin#

tuist_ex öğesini mix.exs dosyanızdaki bağımlılıklara ekleyin:

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

Ardından paketi indirin:

bash
mix deps.get

runtime: false, Tuist'i çalışan uygulamanızın dışında tutar. Önbelleğe alma, derleme içgörüler ve test içgörüler birlikte yapılandırmak için Elixir ile başlayın bölümüne devam edin. Aşağıdaki bölümler kimlik doğrulama ve yapılandırma ayrıntılarını kapsar.

3. Ekibinizi ve sürekli entegrasyonu doğrulayın#

Her ekip üyesi, makinesindeki Tuist özelliklerine erişim sağlamak için aşağıdakileri çalıştırır:

bash
mix tuist.login

Kısa bir giriş kodu yazdırır, kodu gireceğiniz bir tarayıcı açar ve yetkilendirmenizi bekler. Tarayıcı olmadan giriş yapmak için kimlik bilgilerinizi geçirin:

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

Kendi barındırdığınız veya yerel bir Tuist sunucusu kullanıyorsanız, temel URL'sini mix.exs içinde ayarlayın veya --url ile geçirin:

bash
mix tuist.login --url http://localhost:8080

Ana bilgisayar adı yazımını tutarlı tutun. Örneğin, localhost için saklanan bir giriş, 127.0.0.1 için saklanandan ayrıdır.

GitHub Actions, CircleCI ve Bitrise'te sürekli entegrasyon için giriş adımı gerekmez. Bir görev ilk kez rapor gönderdiğinde, sağlayıcının OpenID Connect jetonunu bir Tuist jetonuyla değiştirir. GitHub deposunuzu Tuist projenize bağlayın ve GitHub Actions'ta işe id-token: write iznini verin:

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

Fly.io Machines gibi diğer OpenID Connect kimlik sağlayıcılarıyla, hesabınızın Ayarlar → Kimlik Doğrulama sayfasındaki İş Yükü Kimlikleri bölümünde bir iş yükü kimliği güven politikası yapılandırın; bu politika, söz konusu hesaba ait mevcut ve gelecekteki tüm projelere CI erişimi sağlar. Projeye sahip olan Tuist hesabını TUIST_OIDC_ACCOUNT olarak ayarlayın ve politikanın hedef kitlesine sahip yeni oluşturulmuş bir kimlik jetonunu TUIST_OIDC_TOKEN aracılığıyla sağlayın. Entegrasyon, hesap jetonu veya geçerli saklanmış bir giriş olmadığında bunu otomatik olarak değiştirir; mix tuist.login ayrıca CI dışında da bunu kabul eder. Otomatik değişimler, yalnızca aynı sunucu, hesap ve sağlanan kimlik jetonu için süresi dolmamış bir oturumu yeniden kullanır. Kimliğin değiştirilmesi yeni bir değişimi tetikler ve boş sağlanan kimlik, önceki bir oturumu yeniden kullanmak yerine başarısız olur. Tuist oturumları yenileme jetonları olmadan bir saat sürer, bu nedenle daha uzun süreli iş yükleri için oturum sona ermeden önce yeni bir kimlik jetonu oluşturun ve mix tuist.login komutunu tekrar çalıştırın. iş yükü kimliği kurulumu ve Fly.io örneği bölümlerini takip edin.

Fork'lardan gelen çekme istekleri OpenID Connect jetonu almaz, bu nedenle çalıştırmaları raporlanmaz ve her zamanki gibi başarılı veya başarısız olur. Diğer sağlayıcılarda, bir hesap jetonu için TUIST_TOKEN ortam değişkenini ayarlayın. Bir tane oluşturmak için sürekli entegrasyon kimlik doğrulama kılavuzunu takip edin.

4. mix test ve mix compile kullanmaya devam edin#

paylaşılan kurulum, derleme ve test takma adlarını sizin için yükler. mix test test/my_app_test.exs:12 --trace, çalıştırmayı aynı çıktı ve çıkış koduyla raporlar ve derleme entegrasyonu, mix test veya mix phx.server tarafından tetiklenen derlemeleri kapsar. Yapılacak bir şey bulamayan bir derleme raporlanmaz.

Görevler, kendi adlarıyla çağırdığınızda da çalışır. Mix, bu şekilde yazılan bir görevi dev ortamında başlatır, bu nedenle görevin test ortamı için ikinci bir süreçte yeniden başlaması gerekir. Bunu atlamak için görevleri tercih edilen ortamlara ekleyin:

elixir
def cli do
[preferred_envs: ["tuist.test": :test, "tuist.test.build": :test]]
end

Yapılandırma referansı#

mix.exs dosyasındaki proje seçeneklerinde tuist altında aşağıdaki seçenekler mevcuttur:

SeçenekTürVarsayılanAçıklama
projectStringyok (gerekli)account/project formatındaki proje tanımlayıcısı.
urlString"https://tuist.dev"Tuist sunucusunun temel URL'si.
cacheboolean veya anahtar kelime listesidevre dışıKurulum, bağımlılık önbelleğe almayı etkinleştirir. Hariç tutmalar ve ekstra girişler için Elixir önbelleği bölümüne bakın.
test_retriesinteger0Başarısız olan testlerin kaç kez yeniden denenmesi gerektiği; bkz. test yeniden denemeleri.
tagsString listesi[]Her derlemeye eklenecek etiketler; bkz. özel meta veriler.
valuesharita%{}Her derlemeye eklenecek anahtar-değer verisi.

Ortam değişkenleri mix.exs üzerinde önceliklidir:

DeğişkenAçıklama
TUIST_PROJECTaccount/project formatındaki proje tanımlayıcısı.
TUIST_URLTuist sunucusunun temel URL'si.
TUIST_TOKENKayıtlı giriş yerine kimlik doğrulama için kullanılacak jeton.
TUIST_OIDC_TOKENTuist jetonuyla değiştirilen, yeni oluşturulmuş bir OpenID Connect kimlik jetonu. GitHub Actions ve Bitrise için hedef kitlesi tuist olmalı, diğer sağlayıcılar için hesabın iş yükü kimliğiyle eşleşmelidir. Hesap jetonu veya geçerli kayıtlı giriş olmadığında mix tuist.login tarafından veya yedek olarak kullanılır.
TUIST_OIDC_ACCOUNTProjenin sahibi olan Tuist hesap tanıtıcısı. Bir hesap iş yükü kimliği aracılığıyla jeton değişimi yaparken gereklidir. Mevcut iş yükü kimlikleri arasında seçim yapar ve tek başına erişim izni vermez.
TUIST_TEST_RETRIESBaşarısız olan testlerin kaç kez yeniden denenmesi gerektiği.
TUIST_TAGSDerlemeye eklenecek, virgülle ayrılmış etiketler.
TUIST_VALUESDerlemeye eklenecek, virgülle ayrılmış key=value çiftleri.
TUIST_DEBUGBir raporun neden gönderilemediğini yazdırmak için 1 olarak ayarlayın.

Raporlama, mix test veya mix compile çıkış kodunu asla değiştirmez. Bir rapor gönderilemezse, TUIST_DEBUG=1 ayarlanmadığı sürece görev herhangi bir çıktı vermez.

Sonraki adımlar#

Paket yüklendikten ve yapılandırıldıktan sonra şunları kullanabilirsiniz: