Menyebarkan ke App Service menggunakan GitHub Actions

Mulai dengan GitHub Actions untuk mengotomatiskan alur kerja dan menyebarkan ke Azure App Service dari GitHub.

Prasyarat

Menyiapkan penyebaran GitHub Actions saat membuat aplikasi

Penyebaran GitHub Actions diintegrasikan ke dalam wizard pembuatan aplikasi default. Anda hanya perlu mengatur Penyebaran berkelanjutan ke Aktifkan di tab Penyebaran, dan mengonfigurasi organisasi, repositori, dan cabang yang Anda inginkan.

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

Saat Anda mengaktifkan penyebaran berkelanjutan, wizard pembuatan aplikasi secara otomatis memilih metode autentikasi berdasarkan pilihan autentikasi dasar dan mengonfigurasi aplikasi Anda dan repositori GitHub Yang sesuai:

Pilihan autentikasi dasar Metode autentikasi
Nonaktifkan Identitas yang ditetapkan pengguna (Koneksi OpenID)
Aktifkan Autentikasi dasar

Catatan

Jika Anda menerima kesalahan saat membuat aplikasi yang mengatakan bahwa akun Azure Anda tidak memiliki izin tertentu, mungkin tidak memiliki izin yang diperlukan untuk membuat dan mengonfigurasi identitas yang ditetapkan pengguna. Untuk alternatif, lihat Menyiapkan penyebaran GitHub Actions dari Pusat Penyebaran.

Menyiapkan penyebaran GitHub Actions dari Pusat Penyebaran

Untuk aplikasi yang sudah ada, Anda dapat memulai dengan cepat dengan GitHub Actions dengan menggunakan Pusat Penyebaran App Service. Metode turn-key ini secara otomatis menghasilkan file alur kerja GitHub Actions berdasarkan tumpukan aplikasi Anda dan menerapkannya ke repositori GitHub Anda.

Pusat Penyebaran juga memungkinkan Anda dengan mudah mengonfigurasi autentikasi Koneksi OpenID yang lebih aman dengan opsi identitas yang ditetapkan pengguna.

Jika akun Azure Anda memiliki izin yang diperlukan, Anda dapat memilih untuk membuat identitas yang ditetapkan pengguna. Jika tidak, Anda dapat memilih identitas terkelola yang ditetapkan pengguna yang ada di menu dropdown Identitas . Anda dapat bekerja dengan administrator Azure Anda untuk membuat identitas terkelola yang ditetapkan pengguna dengan peran Kontributor Situs Web.

Untuk informasi selengkapnya, lihat Penyebaran berkelanjutan ke Azure App Service.

Menyiapkan alur kerja GitHub Actions secara manual

Anda juga dapat menyebarkan alur kerja tanpa menggunakan Pusat Penyebaran.

  1. Hasilkan kredensial penyebaran
  2. Mengonfigurasi rahasia GitHub
  3. Menambahkan file alur kerja ke repositori GitHub Anda

1. Hasilkan kredensial penyebaran

Cara yang disarankan untuk mengautentikasi dengan Azure App Services untuk GitHub Actions adalah dengan identitas terkelola yang ditentukan pengguna, dan cara term mudah untuk itu adalah dengan mengonfigurasi penyebaran GitHub Actions langsung di portal sebagai gantinya dan memilih Identitas terkelola yang ditetapkan pengguna.

Catatan

Autentikasi menggunakan identitas terkelola yang ditetapkan pengguna saat ini dalam pratinjau.

Atau, Anda dapat mengautentikasi dengan perwakilan layanan, Koneksi OpenID, atau profil penerbitan.

Catatan

Profil publikasi mengharuskan autentikasi dasar diaktifkan.

Profil penerbitan adalah info masuk tingkat aplikasi. Siapkan profil penerbitan Anda sebagai rahasia GitHub.

  1. Buka layanan aplikasi Anda di portal Microsoft Azure.

  2. Pada halaman Ringkasan, pilih Dapatkan profil Penerbitan.

  3. Simpan file yang diunduh. Anda akan menggunakan isi file tersebut untuk membuat rahasia GitHub.

Catatan

Mulai Oktober 2020, aplikasi web Linux memerlukan pengaturan WEBSITE_WEBDEPLOY_USE_SCM aplikasi yang diatur ke truesebelum mengunduh profil penerbitan. Persyaratan ini akan dihapus di masa mendatang.

2. Konfigurasikan rahasia GitHub

Di GitHub, telusuri repositori Anda. Pilih Pengaturan > Rahasia Keamanan > dan variabel > Tindakan > Rahasia repositori baru.

Untuk menggunakan info masuk tingkat aplikasi, tempelkan isi file profil penerbitan yang diunduh ke bidang nilai rahasia. Beri nama rahasia AZURE_WEBAPP_PUBLISH_PROFILE.

Saat mengonfigurasi file alur kerja GitHub nanti, Anda menggunakan AZURE_WEBAPP_PUBLISH_PROFILE dalam tindakan sebarkan Azure Web App. Misalnya:

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

3. Tambahkan file alur kerja ke repositori GitHub Anda

Alur kerja ditentukan oleh file YAML (.yml) di /.github/workflows/ jalur di repositori GitHub Anda. Definisi ini berisi berbagai langkah dan parameter yang membentuk alur kerja.

Minimal, file alur kerja akan memiliki langkah-langkah berbeda berikut:

  1. Autentikasi dengan App Service menggunakan rahasia GitHub yang Anda buat.
  2. Buat aplikasi web.
  3. Menyebarkan aplikasi web.

Untuk menyebarkan kode Anda ke aplikasi App Service, Anda menggunakan tindakan azure/webapps-deploy@v3 . Tindakan ini memerlukan nama aplikasi web Anda di app-name dan, tergantung pada tumpukan bahasa Anda, jalur *.zip, *.war, *.jar, atau folder untuk disebarkan di package. Untuk daftar lengkap kemungkinan input untuk tindakan, azure/webapps-deploy@v3 lihat definisi action.yml .

Contoh berikut memperlihatkan bagian alur kerja yang membangun aplikasi web dalam berbagai dukungan bahasa.

Input publish-profile harus mereferensikan AZURE_WEBAPP_PUBLISH_PROFILE rahasia GitHub yang Anda buat sebelumnya.

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'

Langkah berikutnya

Lihat referensi tentang Tindakan dan alur kerja Azure GitHub: