GitHub Actions és .NET

Ebben az áttekintésben megtudhatja, hogy a GitHub Actions milyen szerepet játszik a .NET-alkalmazások fejlesztésében. A GitHub Actions lehetővé teszi a forráskódtárak számára a folyamatos integráció (CI) és a folyamatos kézbesítés (CD) automatizálását. Ezen túlmenően a GitHub Actions speciálisabb forgatókönyveket is elérhetővé tesz– így a kódértékelésekkel, az ágkezeléssel és a problémák osztályozásával biztosítja az automatizáláshoz szükséges horgokat. A GitHub .NET-forráskódjával számos módon használhatja a GitHub Actionst.

GitHub-műveletek

A GitHub Actions önálló parancsokat jelöl, például:

  • actions/checkout – Ez a művelet kijelentkezteti $GITHUB_WORKSPACEaz adattárat, hogy a munkafolyamat hozzáférhessen.
  • actions/setup-dotnet – Ez a művelet beállít egy .NET CLI-környezetet a műveletekben való használatra.
  • dotnet/versionsweeper – Ez a művelet a .NET nem támogatott célverzióihoz tartozó .NET-adattárakat pásztázi.

Bár ezek a parancsok egyetlen művelethez vannak elkülönítve, a munkafolyamat-összetétel révén hatékonyak. A munkafolyamat-összeállításban meghatározhatja a munkafolyamatot kiváltó eseményeket . Ha egy munkafolyamat fut, különböző feladatokat kell elvégeznie. Minden feladat tetszőleges számú lépést határoz meg. A lépések a GitHub Actionsbe delegálhatók, vagy parancssori szkripteket hívnak meg.

További információ: Bevezetés a GitHub Actions használatába. A munkafolyamat-fájlokat olyan összeállításnak tekintheti, amely az alkalmazások létrehozásának, tesztelésének és/vagy közzétételének különböző lépéseit jelöli. Számos .NET CLI-parancs érhető el, amelyek többsége egy GitHub-művelet kontextusában használható.

Egyéni GitHub-műveletek

Bár rengeteg GitHub-művelet érhető el a Marketplace-en, érdemes lehet sajátot létrehoznia. Létrehozhat .NET-alkalmazásokat futtató GitHub Actions-műveleteket. További információ : Oktatóanyag: GitHub-művelet létrehozása .NET-tel

Munkafolyamat-fájl

A GitHub Actions egy munkafolyamat-fájlon keresztül történik. A munkafolyamat-fájlnak az adattár .github/workflows könyvtárában kell lennie, és várhatóan YAML ( *.yml vagy *.yaml) lesz. A munkafolyamat-összeállítást munkafolyamat-fájlok határozzák meg. A munkafolyamat egy konfigurálható automatizált folyamat, amely egy vagy több feladatból áll. További információ: A GitHub Actions munkafolyamat-szintaxisa.

Példa munkafolyamat-fájlokra

Számos példa van a .NET-munkafolyamat-fájlokra oktatóanyagként és rövid útmutatóként. Íme néhány jó példa a munkafolyamat-fájlnevekre:

Munkafolyamat fájlneve

Leírás

Lefordítja (vagy összeállítja) a forráskódot. Ha a forráskód nem fordít le, ez sikertelen lesz.

Gyakorolja az egységteszteket az adattárban. A tesztek futtatásához először a forráskódot kell lefordítani – ez valójában egy buildelési és tesztelési munkafolyamat (felülírná a build-validation.yml munkafolyamatot). A sikertelen egységtesztek munkafolyamat-hibát okoznak.

Csomagok, és közzéteszi a forráskódot egy célhelyen.

Elemzi a kód biztonsági réseit és kódolási hibáit. A felderített biztonsági rések meghibásodást okozhatnak.

Titkosított titkos kódok

Ha titkosított titkos kulcsokat szeretne használni a munkafolyamat-fájlokban, a környezetobjektum munkafolyamat-kifejezésszintaxisával hivatkozhat a secrets titkos kódokra.

${{ secrets.MY_SECRET_VALUE }} # The MY_SECRET_VALUE must exist in the repository as a secret

A titkos értékek soha nem lesznek kinyomtatva a naplókban. Ehelyett a nevüket egy csillaggal nyomtatják ki, amely az értékeiket jelöli. Ha például minden lépés egy feladaton belül fut, az általa használt összes érték a műveletnapló kimenete. A titkos kódok értékei az alábbiakhoz hasonlóan jelennek meg:

MY_SECRET_VALUE: ***

Fontos

A secrets környezet biztosítja a GitHub hitelesítési jogkivonatát, amely az adattárra, ágra és műveletre terjed ki. A GitHub felhasználói beavatkozás nélkül biztosítja:

${{ secrets.GITHUB_TOKEN }}

További információ: Titkosított titkos kódok használata munkafolyamatban.

esemény

A munkafolyamatokat számos különböző típusú esemény aktiválja. A leggyakoribb webhookesemények mellett vannak ütemezett és manuális események is.

Példa webhookeseményre

Az alábbi példa bemutatja, hogyan adhat meg webhookesemény-eseményindítót egy munkafolyamathoz:

name: code coverage

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main, staging

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

Az előző munkafolyamatban az és pull_request az push események elindítják a munkafolyamatot a futtatáshoz.

Példa ütemezett eseményre

Az alábbi példa bemutatja, hogyan adható meg ütemezett (cron-feladat) eseményindító egy munkafolyamathoz:

name: scan
on:
  schedule:
  - cron: '0 0 1 * *'
  # additional events omitted for brevity

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

Az előző munkafolyamatban az schedule esemény megadja, hogy melyik cron'0 0 1 * *' esemény aktiválja a munkafolyamatot, hogy minden hónap első napján fusson. A munkafolyamatok ütemezés szerinti futtatása olyan munkafolyamatok esetében, amelyek hosszú ideig futnak, vagy olyan műveleteket hajtanak végre, amelyek ritkábban igényelnek figyelmet.

Példa manuális eseményre

Az alábbi példa bemutatja, hogyan adhat meg manuális eseményindítót egy munkafolyamathoz:

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

Az előző munkafolyamatban az workflow_dispatch esemény bemenetként szükséges reason . A GitHub ezt és felhasználói felületét dinamikusan módosítva kéri a felhasználót, hogy adja meg a munkafolyamat manuális futtatásának okát. A steps rendszer kinyomtatja a megadott okot a felhasználótól.

További információ: Munkafolyamatokat aktiváló események.

.NET CLI

A .NET parancssori felület (CLI) egy platformfüggetlen eszközlánc a .NET-alkalmazások fejlesztéséhez, létrehozásához, futtatásához és közzétételéhez. A .NET CLI-t a munkafolyamat-fájlon belül az egyén steps részeként használjákrun. Gyakori parancsok a következők:

További információ: .NET CLI – áttekintés

Lásd még

A GitHub Actions és a .NET részletesebb megtekintéséhez tekintse meg a következő erőforrásokat: