Bagikan melalui


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:

Untuk informasi selengkapnya, lihat gambaran umum .NET CLI .

Lihat juga

Untuk melihat lebih mendalam GitHub Actions dengan .NET, pertimbangkan sumber daya berikut: