Gestionarea acțiunilor și a fluxurilor de lucru
Aici veți explora diferitele instrumente și strategii disponibile pentru dvs. în GitHub Enterprise Cloud și pe serverul GitHub Enterprise, pentru a partaja acțiuni și fluxuri de lucru GitHub și a le gestiona utilizarea în întreprinderea dvs.
Conținutul este structurat în jurul nivelului la care sunt disponibile instrumentele prezentate: nivel de întreprindere sau nivel organizațional.
La nivel de întreprindere
Configurarea unei politici de utilizare a acțiunilor GitHub
Fluxurile de lucru Acțiuni GitHub conțin adesea acțiuni, care sunt seturi de comenzi independente de executat în cadrul fluxului de lucru. Atunci când creați un flux de lucru, puteți crea propriile acțiuni de utilizat sau puteți face referire la acțiunile de comunitate publică disponibile din GitHub Marketplace. Din acest motiv, configurarea unei politici de utilizare pentru fluxurile de lucru și acțiunile din întreprinderea dvs. este esențială pentru a împiedica utilizatorii să utilizeze acțiuni de la terți rău intenționate.
Aveți mai multe opțiuni în Enterprise Cloud pentru a configura o politică, precum și în Enterprise Server dacă GitHub Connect este activat în setările de întreprindere.
Pentru a configura o politică de utilizare a acțiunilor GitHub pentru întreprindere, navigați la contul de întreprindere, apoi Politici > Acțiuni în bara laterală. Ar trebui să apară următoarele opțiuni.
Lista verticală din partea de sus etichetată Activare pentru toate organizațiile vă permite să decideți ce organizații din întreprinderea dvs. pot utiliza acțiunile GitHub (toate, unele dintre ele sau niciuna dintre ele), în timp ce cele trei opțiuni dedesubt vă permit să definiți nivelul de restricție al acțiunilor GitHub din cadrul acestor organizații.
Dacă doriți să activați doar anumite acțiuni care să fie utilizate în cadrul întreprinderii, selectați Permiteți întreprindere și selectați fluxuri de lucru care nu sunt de întreprindere, acțiuni și fluxuri de lucru reutilizabileși alegeți opțiunea corespunzătoare cazului de utilizare.
Sincronizarea manuală a acțiunilor publice pentru Enterprise Server
Cele mai oficiale acțiuni GitHub sunt grupate automat cu Enterprise Server și sunt capturate la un moment dat din GitHub Marketplace. Printre acestea se numără actions/checkout, actions/upload-artifact, actions/download-artifact, actions/labelerși diverse acțiuni de actions/setup-, printre altele. Pentru a obține toate acțiunile oficiale incluse în instanța dvs. de întreprindere, navigați la organizația de acțiuni din instanța dvs.: https://HOSTNAME/actions.
Așa cum am menționat în Configurarea unei acțiuni GitHub pentru utilizarea politicilor secțiune, este posibil să configurați Enterprise Server să acceseze automat acțiunile publice disponibile în GitHub Marketplace și să configureze o politică de utilizare pentru acestea. Totuși, dacă doriți un control mai strict asupra acțiunilor publice care ar trebui puse la dispoziție în întreprinderea dvs., puteți descărca și sincroniza manual acțiunile în instanța dvs. de întreprindere utilizând instrumentul de actions-sync.
La nivel de organizație
Documente standarde corporative
Crearea unui flux de lucru Acțiuni GitHub implică adesea scrierea mai multor fișiere și crearea mai multor depozite pentru a specifica fluxul de lucru propriu-zis. Crearea include, de asemenea, acțiunile, containerele și/sau alergătorii de utilizat în fluxul de lucru. În funcție de numărul de utilizatori din instanța Enterprise Cloud sau Enterprise Server, lucrurile se pot dezordine destul de rapid dacă nu aveți standarde de corporație pentru a crea fluxuri de lucru Acțiuni GitHub.
Ca exemplu de bună practică, vă recomandăm să documentați următoarele într-un wiki GitHub sau ca fișier markdown într-un depozit accesibil tuturor dintr-o organizație:
- Depozite de stocare
- Convenții de denumire fișiere/foldere
- Locația componentelor partajate
- Planuri pentru întreținerea continuă
- Orientări privind contribuția
Crearea șabloanelor de flux de lucru
Șabloanele de flux de lucru sunt o modalitate foarte bună de a vă asigura că automatizarea este reutilizată și menținută în întreprinderea dvs. Atât în Enterprise Cloud, cât și în Enterprise Server, utilizatorii cu acces de scriere la depozitul .github al unei organizații pot crea șabloane de flux de lucru care vor fi disponibile pentru utilizare pentru membrii celeilalte organizații cu același acces de scriere. Șabloanele de flux de lucru pot fi utilizate apoi pentru a crea fluxuri de lucru noi în depozitele publice și private ale organizației.
Crearea unui șablon de flux de lucru se efectuează în doi pași:
Creați un fișier flux de lucru yml.
Creați un fișier de metadate json care descrie modul în care șablonul ar trebui să fie prezentat utilizatorilor atunci când creează un flux de lucru.
Notă
Fișierul de metadate trebuie să aibă același nume ca fișierul flux de lucru. În loc de extensia .yml, trebuie să fie adăugat cu .properties.json. De exemplu, un fișier denumit octo-organization-ci.properties.json conține metadatele pentru fișierul flux de lucru denumit octo-organization-ci.yml.
Ambele fișiere trebuie plasate într-un depozit public .github și într-un director numit șabloane de flux de lucru. Poate fi necesar să le creați dacă acestea nu există deja în organizația dvs.
Iată un exemplu de fișier de flux de lucru simplu:
name: Octo Organization CI
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello from Octo Organization
Rețineți că fișierul precedent utilizează un substituent de ramură $default. Atunci când un flux de lucru este creat utilizând șablonul, acest substituent este înlocuit automat cu numele ramurii implicite a depozitului.
În continuare, fișierul de metadate pe care l-ați crea pentru fișierul flux de lucru:
{
"name": "Octo Organization Workflow",
"description": "Octo Organization CI workflow template.",
"iconName": "example-icon",
"categories": [
"Go"
],
"filePatterns": [
"package.json$",
"^Dockerfile",
".*\\.md$"
]
}
Fișierele metadate utilizează următorii parametri:
| Parametru | Descriere | Necesar |
|---|---|---|
| nume | Numele șablonului flux de lucru afișat în lista de șabloane disponibile. | Da |
| descriere | Descrierea șablonului flux de lucru afișată în lista de șabloane disponibile. | Da |
| iconName | Definește o pictogramă pentru intrarea fluxului de lucru din lista de șabloane. Trebuie să fie o pictogramă SVG cu același nume și să fie stocată în directorul de șabloane de flux de lucru. De exemplu, se face referire la un fișier SVG denumit example-icon.svg ca pictogramă exemplu. | Nu |
| categorii | Definește categoria de limbă a fluxului de lucru. Atunci când un utilizator vizualizează șabloanele disponibile, șabloanele care se potrivesc cu aceeași limbă vor fi mai vizibile. | Nu |
| filePatterns | Activează utilizarea șablonului dacă depozitul utilizatorului are un fișier în directorul rădăcină care corespunde unei expresii regulate definite. | Nu |
După crearea unui șablon de flux de lucru, utilizatorii din organizația dvs. îl pot găsi sub Acțiuni Acțiuni > Flux de lucru nou > Fluxuri de lucru create de _your_organization_name.
Șabloane reutilizabile pentru acțiuni și fluxuri de lucru
Acțiunile GitHub permit automatizarea fluxului de lucru și o parte esențială a gestionării eficiente a fluxurilor de lucru utilizează șabloane reutilizabile. Șabloanele reutilizabile ajută la standardizarea și fluidizarea dezvoltării în mai multe depozite, reducând redundanța și îmbunătățind întreținerea.
Șabloanele reutilizabile din Acțiuni GitHub se referă la acțiuni și fluxuri de lucru predefinite care pot fi menționate și utilizate în mai multe proiecte. Acestea asigură consistența și conformitatea cu standardele la nivel de întreprindere.
Tipuri de șabloane reutilizabile
| Tip șablon | Scop | Exemplu |
|---|---|---|
| Fluxuri de lucru reutilizabile | Standardizați conductele CI/CD în depozite. |
ci-pipeline.yml, deploy-app.yml |
| Acțiuni reutilizabile | Encapsulate logica de automatizare comună. |
setup-env-action, security-scan-action |
| Șabloane flux de lucru | Definire structuri de locuri de muncă reutilizabile. |
test-job.yml, build-job.yml |
Fluxuri de lucru reutilizabile
Un flux de lucru reutilizabil este un flux de lucru definit într-un depozit separat care poate fi menționat în mai multe proiecte. Acest lucru permite organizațiilor să își centralizeze logica CI/CD.
Structura unui flux de lucru reutilizabil
Un flux de lucru reutilizabil este stocat în .github/workflows/ și utilizează declanșatorul workflow_call .
Exemplu: Flux de lucru CI standardizat (ci-pipeline.yml)
name: CI Pipeline
on:
workflow_call:
inputs:
node-version:
required: true
type: string
secrets:
npm-token:
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node-version }}
registry-url: 'https://npm.pkg.github.com/'
- name: Install Dependencies
run: npm install
- name: Run Tests
run: npm test
Utilizarea unui flux de lucru reutilizabil în alt depozit
Odată definit, fluxul de lucru reutilizabil poate fi utilizat în orice depozit prin intermediul cuvântului uses: cheie.
Exemplu: Apelarea fluxului de lucru reutilizabil
name: Reusable CI Pipeline
on: push
jobs:
test:
uses: org/reusable-workflows/.github/workflows/ci-pipeline.yml@v1
with:
node-version: '16'
secrets:
npm-token: ${{ secrets.NPM_TOKEN }}
Avantajele utilizării unui flux de lucru reutilizabil
- Asigură că toate depozitele urmează aceeași structură CI/CD.
- Reduce redundanța și întreținerea supratensiei.
- Permite actualizări centralizate fără a modifica fiecare depozit.
Acțiuni reutilizabile
O acțiune GitHub este o unitate modulară, reutilizabilă, care execută anumite activități de automatizare. Organizațiile creează adesea acțiuni particularizate pentru a include logica utilizată frecvent.
Structura unei acțiuni reutilizabile
O acțiune reutilizabilă este definită într-un depozit de acțiuni cu un action.yml fișier.
Exemplu: Acțiune de mediu configurare particularizată
name: "Setup Environment"
description: "Sets up Node.js and installs dependencies"
inputs:
node-version:
description: "Node.js version"
required: true
registry-url:
description: "NPM Registry URL"
required: false
default: "https://registry.npmjs.org/"
runs:
using: "node16"
main: "index.js"
Utilizarea unei acțiuni reutilizabile într-un flux de lucru
În loc să repetați pașii de configurare din fiecare flux de lucru, utilizăm acțiunea noastră particularizată:
name: Build & Test
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Environment
uses: org/actions/setup-env@v1
with:
node-version: '16'
Beneficii:
- Reduce duplicarea logicii de configurare în depozite.
- Simplifică fișierele fluxului de lucru, făcându-le mai ușor de citit.
- Centralizează actualizările - remedierile sau îmbunătățirile dintr-un singur loc reflectă toate fluxurile de lucru.
Șabloane flux de lucru
Așa cum s-a discutat anterior, șabloanele de flux de lucru ajută la standardizarea automatizării în cadrul organizației, furnizând structuri predefinite pentru activitățile comune. Aceste șabloane sunt o parte esențială a categoriei mai largi de fluxuri de lucru reutilizabile.
În secțiunea anterioară "Crearea șabloanelor de flux de lucru", am descris cum să construim aceste șabloane dintr-un yml fișier și un fișier de metadate corespunzător .properties.json .
Pentru a conecta în continuare conceptul: șabloanele fluxului de lucru sunt o formă de flux de lucru reutilizabil. Atunci când le creați și le stocați într-un depozit public .github sub workflow-templates/ director, aceștia permit altor membri ai organizației să creeze fluxuri de lucru unitare pentru depozitele lor, fără a fi necesar să le definiți de la zero.
Prin valorificarea șabloanelor de flux de lucru, întreprinderile pot:
- Impuneți cele mai bune practici în depozite.
- Accelerați înregistrarea și configurarea pentru proiecte noi.
- Menține consecvența proceselor CI/CD.