Bagikan melalui


Tutorial: Menyebarkan lingkungan di CI/CD dengan menggunakan GitHub dan Lingkungan Penyebaran Azure

Dalam tutorial ini, Anda mempelajari cara mengintegrasikan Lingkungan Penyebaran Azure ke dalam alur CI/CD Anda. Anda dapat menggunakan penyedia GitOps apa pun yang mendukung CI/CD, seperti GitHub Actions, Azure Arc, GitLab, atau Jenkins.

Integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) adalah pendekatan pengembangan perangkat lunak yang membantu tim mengotomatiskan proses membangun, menguji, dan menyebarkan perubahan perangkat lunak. CI/CD memungkinkan Anda untuk merilis perubahan perangkat lunak lebih sering dan dengan lebih percaya diri.

Anda menggunakan alur kerja yang menampilkan tiga cabang: utama, pengembangan, dan pengujian.

  • Cabang utama selalu dianggap sebagai lingkungan produksi.
  • Anda membuat cabang fitur dari cabang utama.
  • Anda membuat permintaan pull untuk menggabungkan cabang fitur ke utama.

Alur kerja dalam tutorial ini adalah contoh yang disederhanakan. Alur kerja dunia nyata mungkin lebih kompleks.

Sebelum memulai tutorial ini, Anda dapat membiasakan diri dengan komponen dan konsep Lingkungan Penyebaran dengan meninjau konsep Kunci untuk Lingkungan Penyebaran Azure.

Dalam tutorial ini, Anda mempelajari cara:

  • Membuat dan mengonfigurasi pusat pengembangan
  • Membuat penyimpanan kunci
  • Membuat dan mengonfigurasi repositori GitHub
  • Menyambungkan katalog ke pusat pengembangan Anda
  • Mengonfigurasi identitas penggelaran
  • Mengonfigurasi lingkungan GitHub
  • Menguji alur CI/CD

Prasyarat

Produk Persyaratan
Azure - Langganan Azure - .
- Izin pemilik pada langganan Azure.
- Azure CLI terinstal.
Git - Akun GitHub.
- Git terinstal.

1. Membuat dan mengonfigurasi pusat pengembangan

Di bagian ini, Anda membuat pusat pengembangan dan proyek Lingkungan Penyebaran Azure dengan tiga jenis lingkungan: Dev, Test, dan Prod.

  • Jenis lingkungan Prod berisi lingkungan produksi tunggal.
  • Lingkungan baru dibuat di Dev untuk setiap cabang fitur.
  • Lingkungan baru dibuat di Uji untuk setiap permintaan pull.

1.1 Menyiapkan Azure CLI

Untuk memulai, masuk ke Azure. Jalankan perintah berikut, dan ikuti perintah untuk menyelesaikan proses autentikasi:

az login

Selanjutnya, instal ekstensi azure devcenter untuk Azure CLI:

az extension add --name devcenter --upgrade

Sekarang setelah ekstensi saat ini diinstal, daftarkan Microsoft.DevCenter namespace:

az provider register --namespace Microsoft.DevCenter

Petunjuk / Saran

Sepanjang tutorial ini, Anda akan menyimpan beberapa nilai sebagai variabel lingkungan untuk digunakan nanti. Anda mungkin juga ingin merekam nilai-nilai ini di tempat lain untuk memastikan nilai tersebut tersedia saat Anda membutuhkannya.

Dapatkan ID pengguna Anda dan atur ke variabel lingkungan untuk nanti:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Ambil ID langganan untuk langganan Anda saat ini:

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Ambil ID penyewa untuk penyewa Anda saat ini:

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Atur variabel lingkungan berikut:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Nota

Anda harus menggunakan nama brankas kunci yang unik secara global. Jika tidak, Anda mungkin mendapatkan kesalahan berikut:

Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 Membuat pusat pengembangan

Pusat pengembangan adalah kumpulan proyek dan lingkungan yang memiliki pengaturan serupa. Pusat dev menyediakan akses ke katalog templat dan artefak yang dapat digunakan untuk membuat lingkungan. Pusat dev juga menyediakan cara untuk mengelola akses ke lingkungan dan proyek.

Buat grup sumber daya:

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Buat pusat pengembangan:

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Perintah sebelumnya mengeluarkan JSON. Simpan nilai untuk id dan identity.principalId sebagai variabel lingkungan untuk digunakan nanti:

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Menetapkan peran pemilik identitas pusat pengembang pada langganan

Pusat pengembangan memerlukan izin untuk menetapkan peran pada langganan yang terkait dengan jenis lingkungan.

Untuk mengurangi kompleksitas yang tidak perlu, dalam tutorial ini, Anda menggunakan satu langganan untuk pusat pengembangan dan semua jenis lingkungan. Dalam praktiknya, langganan pusat pengembangan dan penyebaran target mungkin akan menjadi langganan terpisah dengan kebijakan yang berbeda yang diterapkan.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Membuat jenis lingkungan

Pada tingkat pusat pengembangan, jenis lingkungan menentukan lingkungan yang dapat dibuat tim pengembangan, seperti dev, test, sandbox, praproduksi, dan produksi.

Buat tiga jenis lingkungan baru: Dev, Test, dan Prod:

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 Membuat proyek

Proyek adalah titik akses untuk tim pengembangan. Setiap proyek dikaitkan dengan pusat pengembangan.

Buat proyek:

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

Perintah sebelumnya mengeluarkan JSON. id Simpan nilai sebagai variabel lingkungan untuk digunakan nanti:

AZURE_PROJECT_ID=<id>

Tetapkan diri Anda peran Admin Proyek DevCenter pada proyek:

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Membuat jenis lingkungan proyek

Pada tingkat proyek, teknisi platform menentukan jenis lingkungan mana yang sesuai untuk tim pengembangan.

Buat jenis lingkungan proyek baru untuk setiap jenis lingkungan yang Anda buat di pusat pengembangan:

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Buat penyimpanan kunci

Di bagian ini, Anda membuat brankas kunci baru. Anda menggunakan brankas kunci ini nanti dalam tutorial untuk menyimpan token akses pribadi dari GitHub.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

Sekali lagi, simpan id dari output JSON perintah sebelumnya sebagai variabel lingkungan:

AZURE_KEYVAULT_ID=<id>

Berikan peran Administrator Brankas Kunci pada brankas kunci baru:

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Tetapkan identitas pusat pengembangan peran Pengguna Rahasia Key Vault:

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. Membuat dan mengonfigurasi repositori GitHub

Di bagian ini, Anda membuat repositori GitHub baru untuk menyimpan katalog. Azure Deployment Environments mendukung repositori GitHub dan Azure DevOps. Dalam tutorial ini, Anda menggunakan GitHub.

3.1 Membuat repositori GitHub

Dalam langkah ini, Anda membuat repositori baru di akun GitHub Anda yang memiliki struktur direktori, cabang, dan file yang telah ditentukan sebelumnya. Item ini dihasilkan dari repositori templat sampel.

  1. Buat repositori GitHub baru dari templat sampel:

    Cuplikan layar memperlihatkan halaman GitHub membuat repositori baru.

  2. Jika Anda tidak memiliki akun GitHub berbayar, atur repositori Anda ke Publik.

  3. Pilih Buat repositori.

3.2 Melindungi cabang utama repositori

Anda dapat melindungi cabang penting dengan mengatur aturan perlindungan cabang. Aturan perlindungan menentukan apakah kolaborator dapat menghapus cabang atau melakukan dorongan paksa ke cabang. Mereka juga menetapkan persyaratan untuk push ke cabang, seperti melewati pemeriksaan status atau memberlakukan riwayat komit linier.

Nota

Cabang yang dilindungi tersedia di repositori publik dengan GitHub Gratis dan GitHub Gratis untuk organisasi, dan di repositori publik dan privat dengan GitHub Pro, Tim GitHub, GitHub Enterprise Cloud, dan GitHub Enterprise Server. Untuk informasi selengkapnya, lihat Paket GitHub.

  1. Jika belum terbuka, buka halaman utama repositori Anda.

  2. Pilih Pengaturan di menu di bagian atas jendela:

    Cuplikan layar memperlihatkan halaman repositori GitHub. Pengaturan disorot.

  3. Di bagian Kode dan otomatisasi bilah sisi kiri, pilih Cabang:

    Cuplikan layar memperlihatkan halaman pengaturan. Cabang disorot.

  4. Di bawah Aturan perlindungan cabang, pilih Tambahkan kumpulan aturan cabang:

    Cuplikan layar memperlihatkan halaman Aturan perlindungan cabang. Tambahkan seperangkat aturan cabang disorot.

  5. Pada halaman Aturan cabang baru, di Nama Aturan, masukkan CI-CD-tutorial-ruleset:

    Cuplikan layar memperlihatkan kotak Nama Ruleset. Nama ruleset disorot.

  6. Di bawah Cabang target, pilih Tambahkan target, lalu pilih Sertakan cabang default atau Sertakan semua cabang:

    Cuplikan layar memperlihatkan bagian Cabang target. Dua pilihan untuk Tambahkan target disorot.

  7. Di bawah Aturan Percabangan, pilih Memerlukan permintaan pull sebelum penggabungan:

    Cuplikan layar memperlihatkan aturan cabang. Kotak centang Memerlukan permintaan penarikan sebelum penggabungan telah dipilih dan disorot.

  8. Secara opsional, Anda dapat mengaktifkan lebih banyak aturan perlindungan.

  9. Pilih Buat.

3.3 Mengonfigurasi variabel repositori

  1. Di bagian Keamanan bar samping, pilih Rahasia dan variabel, lalu pilih Tindakan:

    Cuplikan layar memperlihatkan bagian Keamanan bar samping. Tindakan disorot.

  2. Pilih tab Variabel .

  3. Untuk setiap item dalam tabel berikut:

    1. Pilih Variabel repositori baru.
    2. Di bidang Nama , masukkan nama variabel.
    3. Di bidang Nilai , masukkan nilai yang dijelaskan dalam tabel.
    4. Pilih Tambahkan variabel.
    Nama variabel Nilai variabel
    AZURE_DEVCENTER Nama pusat pengembangan Anda
    AZURE_PROJECT Nama proyek Anda
    AZURE_KATALOG Atur ke Lingkungan
    Azure_Katalog_Item Tetapkan ke FunctionApp
    AZURE_SUBSCRIPTION_ID ID langganan Azure Anda
    AZURE_TENANT_ID ID penyewa Azure Anda

    Cuplikan layar memperlihatkan halaman variabel dengan tabel variabel.

3.4 Membuat token akses pribadi GitHub

Selanjutnya, buat token akses pribadi terperinci untuk memungkinkan pusat pengembangan Lingkungan Penyebaran Azure Anda terhubung ke repositori Anda dan menggunakan katalog lingkungan.

Nota

Anda dapat memberikan umpan balik tentang token akses pribadi yang halus dalam diskusi umpan balik.

  1. Di sudut kanan atas halaman mana pun di GitHub.com, pilih foto profil Anda, lalu pilih Pengaturan.

  2. Di bilah sisi kiri, pilih Pengaturan pengembang.

  3. Di bilah sisi kiri, di bawah Token akses pribadi, pilih Token halus, lalu pilih Hasilkan token baru:

    Cuplikan layar memperlihatkan opsi token akses pribadi GitHub. Token halus dan Buat opsi token baru disorot.

  4. Pada halaman Token akses pribadi berbutir halus baru, di bawah Nama token, masukkan nama untuk token.

  5. Di bawah Kedaluwarsa, pilih kedaluwarsa untuk token.

  6. Di bawah Pemilik sumber daya, pilih nama pengguna GitHub Anda.

  7. Di bawah Akses repositori, pilih Hanya pilih repositori. Di bawah Repositori yang dipilih, cari dan pilih repositori yang Anda buat:

    Cuplikan layar memperlihatkan opsi akses repositori GitHub. Opsi Hanya pilih repositori disorot.

  8. Di bawah Izin, pilih Izin repositori, lalu ubah Konten menjadi Baca-saja:

    Cuplikan layar memperlihatkan izin repositori GitHub. Bagian Konten disorot.

  9. Pilih Buat token.

  10. Salin dan simpan token akses pribadi Anda. Anda tidak akan dapat melihatnya lagi.

3.5 Simpan token akses pribadi Anda ke brankas kunci

Selanjutnya, simpan token akses pribadi sebagai rahasia brankas kunci bernama pat:

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Sambungkan katalog ke pusat pengembangan Anda

Di Lingkungan Penyebaran Azure, katalog adalah repositori yang berisi sekumpulan definisi lingkungan. Item katalog terdiri dari templat infrastructure-as-code (IaC) dan file lingkungan yang bertindak sebagai manifes. Templat menentukan lingkungan, dan file lingkungan menyediakan metadata tentang templat. Tim pengembangan menggunakan definisi lingkungan dari katalog untuk membuat lingkungan.

Templat yang Anda gunakan untuk membuat repositori GitHub Anda berisi katalog di folder Lingkungan .

Menambahkan katalog ke pusat pengembangan Anda

Dalam perintah berikut, ganti < Organization/Repository > dengan organisasi GitHub dan nama repositori Anda:

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Mengonfigurasi identitas penggelaran

OpenID Connect dengan GitHub Actions adalah metode autentikasi yang menggunakan token berumur pendek untuk memberikan keamanan yang diperkuat. Ini adalah cara yang disarankan untuk mengautentikasi GitHub Actions ke Azure.

Anda juga dapat mengautentikasi perwakilan layanan secara langsung dengan menggunakan rahasia, tetapi itu di luar cakupan untuk tutorial ini.

5.1 Ciptakan identitas penyebaran

  1. Daftarkan aplikasi Microsoft Entra dan prinsipal layanan untuk setiap dari tiga jenis lingkungan.

    Buat aplikasi Microsoft Entra untuk Dev:

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Perintah ini menghasilkan JSON dengan id yang Anda gunakan saat membuat kredensial federasi dengan Graph API, dan appId (juga disebut ID klien).

    Atur variabel lingkungan berikut:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Ulangi langkah-langkah ini untuk Pengujian:

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Ulangi langkah-langkah lagi untuk Prod:

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Buat prinsipal layanan untuk setiap aplikasi.

    Jalankan perintah berikut untuk membuat perwakilan layanan baru untuk Dev:

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Perintah ini menghasilkan output JSON dengan yang berbeda id yang akan digunakan pada langkah berikutnya.

    Atur variabel lingkungan berikut:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Ulangi langkah-langkah ini untuk Pengujian:

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Ulangi langkah-langkah lagi untuk Prod:

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Jalankan perintah berikut untuk membuat kredensial identitas federasi baru untuk setiap aplikasi Microsoft Entra.

    Di masing-masing dari tiga perintah berikut, ganti < Organization/Repository > dengan organisasi GitHub dan nama repositori Anda.

    Buat kredensial identitas federasi untuk Dev:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    Buat kredensial untuk Pengujian:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Buat kredensial untuk Prod:

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Menetapkan peran pada identitas penyebaran

  1. Tetapkan setiap identitas penyebaran sebagai peran Pembaca di proyek:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Tetapkan peran Pengguna Lingkungan Penyebaran ke jenis lingkungan yang sesuai dari setiap identitas penyebaran:

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. Mengonfigurasi lingkungan GitHub

Dengan lingkungan GitHub, Anda dapat mengonfigurasi lingkungan dengan aturan perlindungan dan rahasia. Pekerjaan alur kerja yang mereferensikan lingkungan harus mengikuti aturan perlindungan apa pun untuk lingkungan sebelum menjalankan atau mengakses rahasia lingkungan.

Buat lingkungan Dev, Test, dan Prod yang sesuai dengan jenis lingkungan dalam proyek Azure Deployment Environments.

Nota

Lingkungan, rahasia lingkungan, dan aturan perlindungan lingkungan tersedia di repositori publik untuk semua produk. Untuk akses ke lingkungan, rahasia lingkungan, dan cabang penyebaran di repositori privat atau internal, Anda harus menggunakan GitHub Pro, GitHub Team, atau GitHub Enterprise. Untuk akses ke aturan perlindungan lingkungan lain di repositori privat atau internal, Anda harus menggunakan GitHub Enterprise. Untuk informasi selengkapnya, lihat Paket GitHub.

6.1 Membuat lingkungan Dev

  1. Di GitHub, buka halaman utama repositori Anda.

  2. Di bawah nama repositori Anda, pilih Pengaturan. Jika Anda tidak dapat melihat tab Pengaturan , pilih menu dropdown ... , lalu pilih Pengaturan.

  3. Di bar samping kiri, pilih Lingkungan.

  4. Pilih Lingkungan baru dan masukkan Dev untuk nama lingkungan, lalu pilih Konfigurasikan lingkungan:

    Cuplikan layar memperlihatkan panel Tambahkan/ Lingkungan. Nama lingkungan adalah Dev, dan tombol Konfigurasikan lingkungan disorot.

  5. Di bawah Rahasia lingkungan, pilih Tambahkan rahasia lingkungan, lalu masukkan AZURE_CLIENT_ID di kotak Nama .

    Cuplikan layar memperlihatkan panel Lingkungan / Konfigurasi Dev. Tambahkan kunci rahasia lingkungan disorot.

  6. Dalam kotak Nilai , masukkan ID klien (appId) untuk aplikasi Dev Microsoft Entra yang Anda buat sebelumnya (disimpan sebagai $DEV_AZURE_CLIENT_ID variabel lingkungan):

    Cuplikan layar kotak Tambahkan rahasia. Nama diatur ke ID KLIEN AZURE, nilai diatur ke nomor ID, dan tombol Tambahkan rahasia disorot.

  7. Pilih Tambahkan rahasia.

6.2 Membuat lingkungan Pengujian

Kembali ke halaman lingkungan utama dengan memilih Lingkungan di bilah sisi kiri.

  1. Pilih Lingkungan baru, masukkan Uji untuk nama lingkungan, lalu pilih Konfigurasikan lingkungan.

  2. Di bawah Rahasia lingkungan, pilih Tambahkan rahasia lingkungan, lalu masukkan AZURE_CLIENT_ID di kotak Nama .

  3. Dalam kotak Nilai , masukkan ID klien (appId) untuk aplikasi Uji Microsoft Entra yang Anda buat sebelumnya (disimpan sebagai $TEST_AZURE_CLIENT_ID variabel lingkungan).

  4. Pilih Tambahkan rahasia.

6.3 Membuat lingkungan Prod

Sekali lagi, kembali ke halaman lingkungan utama dengan memilih Lingkungan di bilah sisi kiri.

  1. Pilih Lingkungan baru, masukkan Prod untuk nama lingkungan, lalu pilih Konfigurasikan lingkungan.

  2. Di bawah Rahasia lingkungan, pilih Tambahkan rahasia lingkungan, lalu masukkan AZURE_CLIENT_ID di kotak Nama .

  3. Dalam kotak Nilai , masukkan ID klien (appId) untuk aplikasi Prod Microsoft Entra yang Anda buat sebelumnya (disimpan sebagai $PROD_AZURE_CLIENT_ID variabel lingkungan).

  4. Pilih Tambahkan rahasia.

Selanjutnya, atur diri Anda sebagai peninjau yang diperlukan untuk lingkungan ini. Ketika upaya dilakukan untuk menyebarkan ke Prod, GitHub Actions menunggu persetujuan sebelum memulai. Saat pekerjaan menunggu persetujuan, pekerjaan tersebut memiliki status Menunggu. Jika pekerjaan tidak disetujui dalam waktu 30 hari, pekerjaan akan gagal secara otomatis.

Untuk informasi selengkapnya tentang lingkungan dan persetujuan yang diperlukan, lihat Menggunakan lingkungan untuk penyebaran.

  1. Pilih Peninjau yang diperlukan.

  2. Cari dan pilih nama pengguna GitHub Anda. Anda dapat memasukkan hingga enam orang atau tim. Hanya salah satu dari peninjau yang diperlukan harus menyetujui pekerjaan untuk melanjutkan.

  3. Pilih Simpan aturan perlindungan.

Terakhir, konfigurasikan main sebagai cabang penyebaran:

  1. Di daftar Cabang dan tag penyebaran , pilih Cabang dan tag yang dipilih.

  2. Pilih Tambahkan cabang penyebaran atau aturan tag, pastikan Jenis ref: Cabang dipilih, lalu masukkan utama dalam kotak Pola nama .

  3. Pilih Tambahkan aturan.

7. Uji jalur proses CI/CD

Di bagian ini, Anda membuat beberapa perubahan pada repositori dan menguji alur CI/CD.

7.1 Mengkloning repositori

  1. Di Git Bash, gunakan cd untuk beralih ke folder tempat Anda ingin mengkloning repositori Anda secara lokal.

  2. Klon repositori. Pastikan untuk mengganti < Organization/Repository > dalam perintah berikut dengan organisasi GitHub dan nama repositori Anda.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Navigasikan ke direktori kloning:

    cd <repository>
    
  4. Buat cabang baru dan terbitkan dari jarak jauh:

    git checkout -b feature1
    
    git push -u origin feature1
    

    Lingkungan baru, khusus untuk cabang ini, dibuat di Azure.

  5. Di GitHub, buka halaman utama repositori anda yang baru dibuat.

  6. Di bawah nama repositori Anda, pilih Tindakan:

    Anda akan melihat alur kerja Buat Lingkungan baru yang berjalan.

7.2 Membuat perubahan pada kode

  1. Buka repositori yang dikloning secara lokal di Visual Studio Code.

  2. Di ADE. Folder tutorial , buat perubahan pada file.

  3. Simpan perubahan Anda.

7.3 Mendorong perubahan Anda untuk memperbarui lingkungan

  1. Siapkan perubahan Anda dan kirim ke cabang feature1.

    git add .
    git commit -m '<commit message>'
    git push
    
  2. Di halaman Tindakan repositori, Anda akan melihat alur kerja Lingkungan Pembaruan baru yang berjalan.

7.4 Membuat permintaan tarik

  1. Buat permintaan pull GitHub main <- feature1.

  2. Pada halaman Tindakan repositori, Anda melihat bahwa alur kerja baru telah dimulai untuk membuat lingkungan yang spesifik untuk pull request. Jenis lingkungan Uji digunakan.

7.5 Menggabungkan permintaan penarikan

  1. Di GitHub, buka permintaan pull yang Anda buat.

  2. Gabungkan pull request.

    Perubahan Anda diterbitkan ke lingkungan produksi, dan lingkungan branch dan pull request dihapus.

Membersihkan sumber daya

Jika Anda tidak berencana untuk menggunakan salah satu sumber daya yang Anda buat, hapus sumber daya tersebut sehingga Anda tidak dikenakan biaya lebih lanjut. Jika Anda telah menyebarkan aplikasi sampel di grup sumber daya yang berbeda, Anda mungkin ingin mengulangi langkah-langkah berikut.

Untuk menghapus sumber daya dengan menggunakan portal Azure:

  1. Pilih tombol menu di sudut kiri atas, lalu pilih Grup sumber daya.

  2. Dari daftar, pilih grup sumber daya yang Anda buat.

  3. Pilih Hapus grup sumber daya.

  4. Masukkan nama grup sumber daya. Kemudian pilih Hapus.

Untuk menghapus sumber daya dengan menggunakan Azure CLI, masukkan perintah berikut:

az group delete --name <my-dev-center-rg>

Ingat, menghapus grup sumber daya akan menghapus semua sumber daya di dalamnya.