DEVOPS
GitHub Actions ile Manual Deploy
Bu yazıda GitHub Action’ı istenen herhangi bir branch için çalıştırabilmenin yollarını arıyor olacağız. Özellikle Dev, Lab, Test gibi ortamlara farklı feature branchlerinden çıktığınız geliştirimeleri nasıl GitHub actions ile deploy yapabiliriz onu görmüş olacağız.
Daha önceki 2 yazımızda;
- React Projelerinde Git Branch Stratejileri
- GitHub Actions ile React Projeniz için CI/CD sürecini hazırlama (AWS S3 Deploy)
GitHub üzerinde Branch Stratejilerinden , diğerinde de bir branch merge olunca otomatik tetiklenen bir GitHub Action nasıl yazılır üzerinde durmuştuk.
Gereksinim
- Her zaman merge işleminin otomatik bir build/deploy sürecini başlatmasını istemiyor olabiliriz.
- İstenilen ortama farklı farklı branch lerden build/deploy işlemini başlatmak isteyebiliriz.
- Bu sisteme deploy yaparken ekstra parametreler almak isteyebiliriz.
Aşağıda bunu nasıl yapabileceğimizi anlatıyor olacağım.
GitHub Actions’da aşağıdaki resimdeki gibi branch seçtirme imkanı çıkarıp istediğimiz branch’den deploy yapmak istiyorsak.
Pembe arkaplanlı olan branch seçip işlemi başlatalım. Ve aşağıda görüleceği gibi istediğimiz branch deploy işlemini başlatmış olduk.
Bu işlemi yapabilmek için Defining inputs for manually triggered workflows GitHub actions dokümantasyonunu okumanızda fayda var. Ama temel fark trigger işlemi başlatırken bir branch merge ettirmek ile tetiklenme olayı
on:
push:
branches:
- main
yerine kullanıcıdan branch bilgisini alarak tetiklenmeyi manual başlattırmaktır.
on:
workflow_dispatch:
Peki kullanıcıdan ekstra değişkenler ve parametreler almak istiyorsak ne yapacağız. GitHub Actions içerisine farklı input alanları alan kısımlar ekleyebiliriz.
Input Types
Dropdown (Options)
on:
workflow_dispatch:
inputs:
logLevel:
description: "Log level"
required: true
default: "warning"
type: choice
options:
- info
- warning
- debug
CheckBox (Boolean )
on:
workflow_dispatch:
inputs:
print_tags:
description: "True to print to STDOUT"
required: true
type: boolean
Input (Text)
on:
workflow_dispatch:
inputs:
tags:
description: "Test scenario tags"
required: true
Environment
on:
workflow_dispatch:
inputs:
environment:
description: "Environment to run tests against"
type: environment
required: true
Variable Kullanımı
Steps içerisinde Variable $ ile erişebilirsiniz Örneğin aşağıda olduğu gibi
- name: Print the input tag to STDOUT
run: echo The tags are ${{ inputs.tags }}
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.