GitHub Actions kullanarak App Service'e dağıtma

İş akışınızı otomatikleştirmek ve GitHub'dan Azure Uygulaması Hizmeti'ne dağıtmak için GitHub Actions'ı kullanmaya başlayın.

Önkoşullar

Uygulamayı oluştururken GitHub Actions dağıtımını ayarlama

GitHub Actions dağıtımı, varsayılan uygulama oluşturma sihirbazıyla tümleşiktir. Yalnızca Dağıtım sekmesinde Sürekli dağıtımı Etkinleştir olarak ayarlamanız ve istediğiniz kuruluşu, depoyu ve dalı yapılandırmanız yeterlidir.

A screenshot showing how to enable GitHub Actions deployment in the App Service create wizard.

Sürekli dağıtımı etkinleştirdiğinizde, uygulama oluşturma sihirbazı temel kimlik doğrulama seçimine göre kimlik doğrulama yöntemini otomatik olarak seçer ve uygulamanızı ve GitHub deponuzu buna göre yapılandırılır:

Temel kimlik doğrulaması seçimi Kimlik doğrulama yöntemi
Devre Dışı Bırak Kullanıcı tarafından atanan kimlik (OpenID Bağlan)
Etkinleştirme Temel kimlik doğrulaması

Not

Uygulamanızı oluştururken Azure hesabınızın belirli izinlere sahip olmadığını belirten bir hata alırsanız, kullanıcı tarafından atanan kimliği oluşturmak ve yapılandırmak için gerekli izinlere sahip olmayabilir. Alternatif olarak bkz . Dağıtım Merkezi'nden GitHub Actions dağıtımını ayarlama.

Dağıtım Merkezi'nden GitHub Actions dağıtımını ayarlama

Mevcut bir uygulama için App Service Dağıtım Merkezi'ni kullanarak GitHub Actions ile hızlı bir şekilde çalışmaya başlayabilirsiniz. Bu anahtar teslim yöntemi, uygulama yığınınızı temel alan bir GitHub Actions iş akışı dosyasını otomatik olarak oluşturur ve GitHub deponuza işler.

Dağıtım Merkezi, kullanıcı tarafından atanan kimlik seçeneğiyle daha güvenli OpenID Bağlan kimlik doğrulamasını kolayca yapılandırmanıza da olanak tanır.

Azure hesabınız gerekli izinlere sahipse, kullanıcı tarafından atanan bir kimlik oluşturmayı seçebilirsiniz. Aksi takdirde, Kimlik açılan listesinden kullanıcı tarafından atanan mevcut bir yönetilen kimliği seçebilirsiniz. Web Sitesi Katılımcısı rolüyle kullanıcı tarafından atanan bir yönetilen kimlik oluşturmak için Azure yöneticinizle birlikte çalışabilirsiniz.

Daha fazla bilgi için bkz. Azure Uygulaması Hizmetine sürekli dağıtım.

GitHub Actions iş akışını el ile ayarlama

Dağıtım Merkezi'ni kullanmadan da iş akışı dağıtabilirsiniz.

  1. Dağıtım kimlik bilgileri oluşturma
  2. GitHub gizli dizisini yapılandırma
  3. İş akışı dosyasını GitHub deponuza ekleme

1. Dağıtım kimlik bilgileri oluşturma

GitHub Actions için Azure Uygulaması Services ile kimlik doğrulaması yapmanın önerilen yolu kullanıcı tanımlı yönetilen kimliktir ve bunun en kolay yolu GitHub Actions dağıtımını doğrudan portalda yapılandırıp Kullanıcı tarafından atanan yönetilen kimlik'i seçmektir.

Not

Kullanıcı tarafından atanan yönetilen kimlik kullanılarak kimlik doğrulaması şu anda önizleme aşamasındadır.

Alternatif olarak, hizmet sorumlusu, OpenID Bağlan veya yayımlama profiliyle kimlik doğrulaması yapabilirsiniz.

Not

Yayımlama profili, temel kimlik doğrulamasının etkinleştirilmesini gerektirir.

Yayımlama profili, uygulama düzeyinde bir kimlik bilgisidir. Yayımlama profilinizi GitHub gizli dizisi olarak ayarlayın.

  1. Azure portalında uygulama hizmetinize gidin.

  2. Genel Bakış sayfasında Yayımlama profilini al'ı seçin.

  3. İndirilen dosyayı kaydedin. GitHub gizli dizisi oluşturmak için dosyanın içeriğini kullanacaksınız.

Not

Ekim 2020 itibarıyla Linux web uygulamalarının yayımlama profilini indirmeden önce uygulama ayarının WEBSITE_WEBDEPLOY_USE_SCM olarak ayarlanması truegerekir. Bu gereksinim gelecekte kaldırılacaktır.

2. GitHub gizli dizisini yapılandırma

GitHub'da deponuza göz atın. Ayarlar > Güvenlik Gizli Dizileri ve değişkenleri > Eylemler > Yeni depo gizli dizisi'ni seçin>.

Uygulama düzeyinde kimlik bilgilerini kullanmak için indirilen yayımlama profili dosyasının içeriğini gizli dizinin değer alanına yapıştırın. Gizli diziyi AZURE_WEBAPP_PUBLISH_PROFILEolarak adlandırın.

GitHub iş akışı dosyasını daha sonra yapılandırdığınızda Azure Web App'i dağıtma eyleminde öğesini kullanırsınız AZURE_WEBAPP_PUBLISH_PROFILE . Örneğin:

- uses: azure/webapps-deploy@v2
  with:
    publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

3. İş akışı dosyasını GitHub deponuza ekleyin

İş akışı, GitHub deponuzdaki yoldaki /.github/workflows/ bir YAML (.yml) dosyası tarafından tanımlanır. Bu tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.

İş akışı dosyasında en azından aşağıdaki ayrı adımlar bulunur:

  1. Oluşturduğunuz GitHub gizli dizisini kullanarak App Service ile kimlik doğrulaması yapın.
  2. Web uygulamasını oluşturun.
  3. Web uygulamasını dağıtın.

Kodunuzu bir App Service uygulamasına dağıtmak için azure/webapps-deploy@v3 eylemini kullanırsınız. Eylem, içindeki app-name web uygulamanızın adını ve dil yığınınıza bağlı olarak içinde dağıtılacak package*.zip, *.war, *.jar veya klasörün yolunu gerektirir. Eylem için olası girişlerin tam listesi için azure/webapps-deploy@v3 action.yml tanımına bakın.

Aşağıdaki örnekler, iş akışının web uygulamasını oluşturan bölümünü desteklenen farklı dillerde gösterir.

Giriş, publish-profile daha önce oluşturduğunuz GitHub gizli dizisine başvurmalıdırAZURE_WEBAPP_PUBLISH_PROFILE.

name: .NET Core CI

on: [push]

env:
  AZURE_WEBAPP_NAME: my-app-name    # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0.x'           # set this to the dot net version to use

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Checkout the repo
      - uses: actions/checkout@main
      
      # Setup .NET Core SDK
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }} 
      
      # Run dotnet build and publish
      - name: dotnet build and publish
        run: |
          dotnet restore
          dotnet build --configuration Release
          dotnet publish -c Release --property:PublishDir='${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp' 
          
      # Deploy to Azure Web apps
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v3
        with: 
          app-name: ${{ env.AZURE_WEBAPP_NAME }} # Replace with your app name
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE  }} # Define secret variable in repository settings as per action documentation
          package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp'

Sonraki adımlar

Azure GitHub Actions ve iş akışlarıyla ilgili başvurulara göz atın: