logo
eng-flag

Travis CI Notları ve İpuçları

İçindekiler

  1. Travis CI Temelleri
  2. Travis CI Yapılandırması
  3. Derleme Yaşam Döngüsü
  4. Dil Desteği
  5. Ortam Değişkenleri
  6. Dağıtım
  7. Önbellekleme
  8. Derleme Matrisi
  9. Bildirimler
  10. Travis CI ve Docker
  11. Travis CI ve Veritabanları
  12. Koşullu Derlemeler
  13. Travis CI API
  14. Travis CI En İyi Uygulamalar
  15. Travis CI Sorun Giderme

Travis CI Temelleri

Travis CI Nedir?

Travis CI, GitHub ve Bitbucket'ta barındırılan yazılım projelerini derlemek ve test etmek için kullanılan barındırılan bir sürekli entegrasyon hizmetidir.

Temel Bileşenler

  • .travis.yml dosyası: CI/CD boru hattını tanımlar
  • Derlemeler: Bireysel test çalıştırmaları
  • İşler: Bir derlemedeki aşamalar
  • Aşamalar: Sıralı olarak çalışan iş grupları

Travis CI Yapılandırması

Temel .travis.yml yapısı

language: ruby
rvm:
  - 2.7
script:
  - bundle exec rake test

Derleme ortamını belirtme

os: linux
dist: focal

Derleme Yaşam Döngüsü

Ana aşamalar

  1. before_install
  2. install
  3. before_script
  4. script
  5. after_success veya after_failure
  6. before_deploy (isteğe bağlı)
  7. deploy (isteğe bağlı)
  8. after_deploy (isteğe bağlı)
  9. after_script

Örnek yaşam döngüsü yapılandırması

before_install:
  - sudo apt-get update
install:
  - bundle install
before_script:
  - bundle exec rake db:create
script:
  - bundle exec rake test
after_success:
  - coveralls

Dil Desteği

Ruby

language: ruby
rvm:
  - 2.7
  - 3.0

Node.js

language: node_js
node_js:
  - 14
  - 16

Python

language: python
python:
  - "3.8"
  - "3.9"

Ortam Değişkenleri

Ortam değişkenlerini tanımlama

env:
  - DB=postgres
  - SH=bash
  - PACKAGE_VERSION="1.0.*"

Şifrelenmiş ortam değişkenleri

travis encrypt komutunu kullanın:

travis encrypt SOMEVAR="secretvalue" --add env.global

Ortam değişkenlerini kullanma

script:
  - echo $DB

Dağıtım

Heroku'ya dağıtım

deploy:
  provider: heroku
  api_key: "API ANAHTARINIZ"
  app: "UYGULAMA ADINIZ"

AWS S3'e dağıtım

deploy:
  provider: s3
  access_key_id: "AWS ERİŞİM ANAHTARINIZ"
  secret_access_key: "AWS GİZLİ ANAHTARINIZ"
  bucket: "S3 Bucket"
  skip_cleanup: true

Önbellekleme

Bağımlılıkları önbellekleme

cache:
  directories:
    - $HOME/.cache/pip
    - node_modules

Belirli diller için önbellekleme

language: node_js
cache: npm

Derleme Matrisi

Derleme matrisini tanımlama

language: python
python:
  - "3.8"
  - "3.9"
env:
  - DJANGO=2.2
  - DJANGO=3.0

Belirli kombinasyonları hariç tutma

matrix:
  exclude:
    - python: "3.8"
      env: DJANGO=3.0

Bildirimler

E-posta bildirimleri

notifications:
  email:
    recipients:
      - bir@ornek.com
      - diger@ornek.com
    on_success: never
    on_failure: always

Slack bildirimleri

notifications:
  slack: "SLACK YETKİLENDİRME BELIRTECINIZ"

Travis CI ve Docker

Derlemelerde Docker kullanma

services:
  - docker

before_install:
  - docker build -t myapp .
  - docker run -d -p 127.0.0.1:80:4567 myapp

Docker imajlarını gönderme

after_success:
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
  - docker push KULLANICI/DEPO

Travis CI ve Veritabanları

MySQL kullanma

services:
  - mysql

before_script:
  - mysql -e 'CREATE DATABASE IF NOT EXISTS test;'

PostgreSQL kullanma

services:
  - postgresql

before_script:
  - psql -c 'CREATE DATABASE travis_ci_test;' -U postgres

Koşullu Derlemeler

Belirli dalları derleme

branches:
  only:
    - main
    - stable

Koşullu işler

jobs:
  include:
    - if: branch = main
      script: npm run deploy

Travis CI API

API ile derleme tetikleme

body='{
"request": {
  "branch":"main"
}}'

curl -s -X POST   -H "Content-Type: application/json"   -H "Accept: application/json"   -H "Travis-API-Version: 3"   -H "Authorization: token TRAVIS-API-BELIRTECINIZ"   -d "$body"   https://api.travis-ci.com/repo/SAHIP%2FDEPO/requests

Derleme durumunu alma

curl -H "Travis-API-Version: 3"   -H "Authorization: token TRAVIS-API-BELIRTECINIZ"   https://api.travis-ci.com/repo/SAHIP%2FDEPO/builds

Travis CI En İyi Uygulamalar

  1. .travis.yml dosyanızı basit ve okunabilir tutun
  2. Karmaşık boru hatları için derleme aşamalarını kullanın
  3. Derlemeleri hızlandırmak için bağımlılıkları önbelleğe alın
  4. Yapılandırma için ortam değişkenlerini kullanın
  5. Uygun hata işleme ve bildirimleri uygulayın
  6. CI sürecini optimize etmek için koşullu derlemeler kullanın
  7. Travis CI yapılandırmanızı düzenli olarak güncelleyin
  8. Birden çok sürümü/yapılandırmayı test etmek için derleme matrisleri kullanın
  9. Hassas verileri şifreleyin
  10. Yerel doğrulama için Travis CI CLI'yi kullanın

Travis CI Sorun Giderme

.travis.yml doğrulama

Travis CI CLI'yi kullanın:

travis lint

Derlemeyi hata ayıklama

.travis.yml dosyanıza ekleyin:

before_install:
  - env
  - ls -la

Yaygın sorunlar

  • Derleme zaman aşımları: Derleme adımlarını optimize edin veya iş yapılandırmasında zaman aşımını artırın
  • Bağımlılık sorunları: Projenizin bağımlılıklarını ve Travis CI'nin önceden yüklenmiş paketlerini kontrol edin
  • Ortam değişkeni sorunları: Travis CI ayarlarında değişken adlarını ve değerlerini doğrulayın
  • Derleme matrisi sorunları: Derleme matrisinizde çakışan yapılandırmaları kontrol edin

2024 © Tüm hakları saklıdır - buraxta.com