Sdílet prostřednictvím


GitHub Actions a .NET

V tomto přehledu se dozvíte, jakou roli hraje GitHub Actions při vývoji aplikací .NET. GitHub Actions umožňuje úložištím zdrojového kódu automatizovat kontinuální integraci (CI) a průběžné doručování (CD). Kromě toho GitHub Actions zpřístupňuje pokročilejší scénáře – poskytuje háky pro automatizaci pomocí kontrol kódu, správy větví a třídění problémů. Pomocí zdrojového kódu .NET na GitHubu můžete gitHub Actions využívat mnoha způsoby.

GitHub Actions

GitHub Actions představují samostatné příkazy, například:

  • actions/checkout – tato akce provede rezervaci úložiště v části $GITHUB_WORKSPACE, aby k němu mohl váš pracovní postup přistupovat.
  • actions/setup-dotnet – tato akce nastaví prostředí .NET CLI pro použití v akcích.
  • dotnet/versionsweeper – tato akce uklidí úložiště .NET pro cílové verze rozhraní .NET, které nepodporují.

I když jsou tyto příkazy izolované na jednu akci, jsou výkonné prostřednictvím složení pracovního postupu. Ve složení pracovního postupu definujete události , které aktivují pracovní postup. Po spuštění pracovního postupu jsou k dispozici různé úlohy , které má provést. Každá úloha definuje libovolný počet kroků. Kroky delegují na GitHub Actions nebo případně volají skripty příkazového řádku.

Další informace najdete v tématu Úvod do GitHub Actions. Soubor pracovního postupu si můžete představit jako složení, které představuje různé kroky pro sestavení, testování nebo publikování aplikace. K dispozici je mnoho příkazů rozhraní příkazového řádku .NET, z nichž většina se dá použít v kontextu akce GitHubu.

Vlastní Akce GitHubu

Na Marketplace je k dispozici spousta akcí GitHub Actions, ale možná budete chtít vytvořit vlastní. Můžete vytvořit GitHub Actions, které spouštějí aplikace .NET. Další informace najdete v tématu Kurz: Vytvoření akce GitHubu pomocí .NET

Soubor pracovního postupu

GitHub Actions se využívají prostřednictvím souboru pracovního postupu. Soubor pracovního postupu musí být umístěný v adresáři .github/workflows úložiště a očekává se, že bude YAML ( *.yml nebo *.yaml). Soubory pracovního postupu definují složení pracovního postupu. Pracovní postup je konfigurovatelný automatizovaný proces tvořený jednou nebo více úlohami. Další informace najdete v tématu Syntaxe pracovního postupu pro GitHub Actions.

Příklady souborů pracovního postupu

V kurzech a rychlých startech je k dispozici mnoho příkladů souborů pracovních postupů .NET. Tady je několik dobrých příkladů názvů souborů pracovního postupu:

Název souboru pracovního postupu

Popis

Zkompiluje (nebo sestaví) zdrojový kód. Pokud se zdrojový kód nekompiluje, dojde k selhání.

Cvičení testů jednotek v úložišti Aby bylo možné spouštět testy, musí se nejprve zkompilovat zdrojový kód – to je skutečně sestavení i testovací pracovní postup (nahrazuje build-validation.yml pracovní postup). Neúspěšné testy jednotek způsobí selhání pracovního postupu.

Zabalí a publikuje zdrojový kód do cíle.

Analyzuje kód z hlediska ohrožení zabezpečení a chyb kódování. Všechna zjištěná ohrožení zabezpečení můžou způsobit selhání.

Šifrované tajné kódy

Pokud chcete v souborech pracovního postupu používat šifrované tajné kódy , odkazujete na tajné kódy pomocí syntaxe výrazu pracovního postupu z kontextového objektu secrets .

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

Tajné hodnoty se v protokolech nikdy nevytisknou. Místo toho se jejich názvy vytisknou hvězdičkou představující jejich hodnoty. Například při každém spuštění jednotlivých kroků v rámci úlohy jsou všechny hodnoty, které používá, výstupem protokolu akcí. Tajné hodnoty se vykreslují podobně jako následující:

MY_SECRET_VALUE: ***

Důležité

Kontext secrets poskytuje ověřovací token GitHubu, který je vymezený na úložiště, větev a akci. Poskytuje ho GitHub bez zásahu uživatele:

${{ secrets.GITHUB_TOKEN }}

Další informace naleznete v tématu Použití šifrovaných tajných kódů v pracovním postupu.

Událost

Pracovní postupy se aktivují mnoha různými typy událostí. Kromě událostí webhooku, které jsou nejběžnější, existují také naplánované události a ruční události.

Příklad události webhooku

Následující příklad ukazuje, jak zadat trigger události webhooku pro pracovní postup:

name: code coverage

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

jobs:
  coverage:

    runs-on: ubuntu-latest

    # steps omitted for brevity

V předchozím pracovním postupu push se události a pull_request události aktivují, aby se pracovní postup spustil.

Příklad naplánované události

Následující příklad ukazuje, jak zadat aktivační událost naplánované události (cron job) pro pracovní postup:

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

jobs:
  build:
    runs-on: ubuntu-latest

    # steps omitted for brevity

V předchozím pracovním postupu událost určujecron, schedule z '0 0 1 * *' nichž se pracovní postup spustí první den každého měsíce. Spouštění pracovních postupů podle plánu je skvělé pro pracovní postupy, které dlouho trvá, nebo provádějí akce, které vyžadují méně častou pozornost.

Příklad ruční události

Následující příklad ukazuje, jak zadat ruční aktivační událost pro pracovní postup:

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

V předchozím pracovním postupu workflow_dispatch vyžaduje událost reason jako vstup. GitHub to a jeho uživatelské rozhraní dynamicky mění, aby uživateli zobrazil výzvu k zadání důvodu ručního spuštění pracovního postupu. Zobrazí steps se zadaný důvod od uživatele.

Další informace naleznete v tématu Události, které aktivují pracovní postupy.

.NET CLI

Rozhraní příkazového řádku .NET (CLI) je sada nástrojů pro různé platformy pro vývoj, vytváření, spouštění a publikování aplikací .NET. Rozhraní příkazového řádku .NET se používá run jako součást jednotlivce steps v souboru pracovního postupu. Mezi běžné příkazy patří:

Další informace najdete v tématu .NET CLI – přehled

Viz také

Podrobnější informace o GitHub Actions s .NET najdete v následujících zdrojích informací: