GitHub Actions dan .NET
Dalam gambaran umum ini, Anda akan mempelajari peran apa yang GitHub Actions bermain dalam pengembangan aplikasi .NET. GitHub Actions memungkinkan repositori kode sumber Anda mengotomatiskan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD). Di luar itu, GitHub Actions menyediakan skenario yang lebih canggih—menyediakan kait untuk otomatisasi dengan ulasan kode, manajemen cabang, dan penanganan masalah. Dengan kode sumber .NET Anda di GitHub, Anda dapat memanfaatkan GitHub Actions dalam banyak cara.
Tindakan GitHub
Tindakan GitHub mewakili perintah mandiri, seperti:
-
tindakan/checkout - Tindakan ini memeriksa repositori Anda di bawah
$GITHUB_WORKSPACE
, sehingga alur kerja Anda dapat mengaksesnya. - tindakan/setup-dotnet - Tindakan ini menyiapkan lingkungan .NET CLI untuk digunakan dalam tindakan.
- dotnet/versionsweeper - Aksi ini memindai repositori .NET untuk versi target .NET yang tidak lagi didukung.
Meskipun perintah ini terpaku pada satu tindakan, mereka menjadi kuat melalui komposisi alur kerja . Dalam komposisi alur kerja, Anda menentukan peristiwa yang memicu alur kerja. Setelah alur kerja berjalan, ada berbagai pekerjaan yang diinstruksikan untuk dilakukan. Setiap pekerjaan menentukan sejumlah langkah . Langkah-langkah didelegasikan ke GitHub Actions, atau memanggil skrip command-line.
Untuk informasi selengkapnya, lihat Pengenalan GitHub Actions. Anggaplah file alur kerja sebagai komposisi yang mewakili berbagai langkah untuk membangun, menguji, dan/atau menerbitkan aplikasi. Banyak perintah .NET CLI tersedia, yang sebagian besar dapat digunakan dalam konteks GitHub Action.
Tindakan GitHub Khusus
Meskipun ada banyak GitHub Actions yang tersedia di Marketplace, Anda mungkin ingin menyusun sendiri. Anda dapat membuat GitHub Actions yang menjalankan aplikasi .NET. Untuk informasi selengkapnya, lihat Tutorial : Membuat GitHub Action dengan .NET.
File alur kerja
GitHub Actions digunakan melalui file alur kerja. File alur kerja harus terletak di .github/workflows direktori repositori, dan diharapkan menjadi YAML (baik *.yml atau *.yaml). File alur kerja menentukan komposisi alur kerja . Alur kerja adalah proses otomatis yang dapat dikonfigurasi yang terdiri dari satu atau beberapa pekerjaan. Untuk informasi selengkapnya, lihat sintaks alur kerja untuk Tindakan GitHub.
Contoh file alur kerja
Ada banyak contoh file alur kerja .NET yang disediakan sebagai tutorial dan panduan cepat . Berikut adalah beberapa contoh nama file alur kerja yang baik:
nama file Alur Kerja
Deskripsi
Mengkompilasi (atau membangun) kode sumber. Jika kode sumber tidak dikompilasi, ini akan gagal.
Menjalankan pengujian unit dalam repositori. Untuk menjalankan pengujian, kode sumber harus terlebih dahulu dikompilasi—ini benar-benar alur kerja build dan pengujian (ini akan menggantikan alur kerja build-validation.yml). Pengujian unit yang gagal akan menyebabkan kegagalan alur kerja.
Memaketkan dan menerbitkan kode sumber ke sebuah tujuan.
Menganalisis kode Anda untuk kerentanan keamanan dan kesalahan pengodean. Setiap kerentanan yang ditemukan dapat menyebabkan kegagalan.
Rahasia terenkripsi
Untuk menggunakan rahasia terenkripsi dalam file alur kerja, Anda mereferensikan rahasia menggunakan sintaks ekspresi alur kerja dari objek konteks secrets
.
${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret
Nilai rahasia tidak pernah dicetak dalam log. Sebagai gantinya, nama mereka dicetak dengan tanda bintang yang mewakili nilainya. Misalnya, ketika setiap langkah dijalankan dalam suatu pekerjaan, semua nilai yang digunakannya dihasilkan pada log tindakan. Nilai rahasia ditampilkan seperti berikut:
MY_SECRET_VALUE: ***
Penting
Konteks secrets
menyediakan token autentikasi GitHub yang ditujukan untuk repositori, cabang, dan aksi. Ini disediakan oleh GitHub tanpa intervensi pengguna:
${{ secrets.GITHUB_TOKEN }}
Untuk informasi selengkapnya, lihat Menggunakan rahasia terenkripsi dalam alur kerja.
Peristiwa
Alur kerja dipicu oleh berbagai jenis peristiwa. Selain peristiwa Webhook, yang paling umum, ada juga peristiwa terjadwal dan peristiwa manual.
Contoh peristiwa webhook
Contoh berikut menunjukkan cara menentukan pemicu peristiwa webhook untuk alur kerja:
name: code coverage
on:
push:
branches:
- main
pull_request:
branches:
- main, staging
jobs:
coverage:
runs-on: ubuntu-latest
# steps omitted for brevity
Dalam alur kerja sebelumnya, peristiwa push
dan pull_request
akan memicu alur kerja berjalan.
Contoh peristiwa terjadwal
Contoh berikut menunjukkan cara menentukan pemicu peristiwa terjadwal (pekerjaan cron) untuk alur kerja:
name: scan
on:
schedule:
- cron: '0 0 1 * *'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
# steps omitted for brevity
Dalam alur kerja sebelumnya, peristiwa schedule
menentukan cron
'0 0 1 * *'
yang akan memicu alur kerja berjalan pada hari pertama setiap bulan. Menjalankan alur kerja sesuai jadwal sangat bagus untuk alur kerja yang membutuhkan waktu lama untuk dijalankan, atau melakukan tindakan yang membutuhkan perhatian yang lebih jarang.
Contoh peristiwa manual
Contoh berikut menunjukkan cara menentukan pemicu peristiwa manual untuk alur kerja:
name: build
on:
workflow_dispatch:
inputs:
reason:
description: 'The reason for running the workflow'
required: true
default: 'Manual run'
# additional events omitted for brevity
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Print manual run reason'
if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo 'Reason: ${{ github.event.inputs.reason }}'
# additional steps omitted for brevity
Dalam alur kerja sebelumnya, peristiwa workflow_dispatch
memerlukan reason
sebagai input. GitHub melihat ini dan UI-nya secara dinamis berubah untuk meminta pengguna memberikan alasan untuk menjalankan alur kerja secara manual.
steps
akan mencetak alasan yang diberikan oleh pengguna.
Untuk informasi selengkapnya, lihat peristiwa yang memicu alur kerja.
.NET CLI
Antarmuka baris perintah .NET (CLI) adalah toolchain lintas platform untuk mengembangkan, membangun, menjalankan, dan menerbitkan aplikasi .NET. .NET CLI digunakan untuk run
sebagai bagian dari steps
individual dalam file alur kerja. Perintah umum meliputi:
- penginstalan beban kerja dotnet
- pemulihan dotnet
- dotnet build
- pengujian dotnet
- publikasikan dotnet
Untuk informasi selengkapnya, lihat gambaran umum .NET CLI .
Lihat juga
Untuk melihat lebih mendalam GitHub Actions dengan .NET, pertimbangkan sumber daya berikut: