Implementer variabler og scripts i en arbejdsproces
Nu, hvor du kender komponenterne i en arbejdsprocesfil, kan du udforske, hvordan du tilpasser disse arbejdsprocesser til forskellige scenarier. I dette undermodul vil vi fokusere på, hvordan du bruger variabler og scripts til at optimere arbejdsprocessen. Variabler gør det muligt at gemme og genbruge konfigurationsoplysninger, der ikke er følsomme. Du kan gemme alle konfigurationsdata, f.eks. compilerflag, brugernavne eller servernavne som variabler. Variabler interpoleres på den løbercomputer, der kører din arbejdsproces. Kommandoer, der kører i handlinger eller arbejdsprocestrin, kan oprette, læse og redigere variabler.
Du kan angive dine egne brugerdefinerede variabler eller bruge de standardmiljøvariabler, som GitHub angiver automatisk. Du kan oprette en brugerdefineret variabel på to måder.
- Hvis du vil definere en miljøvariabel til brug i en enkelt arbejdsproces, kan du bruge nøglen
envi arbejdsprocesfilen. - Hvis du vil definere en konfigurationsvariabel på tværs af flere arbejdsprocesser, kan du definere den på organisation-, lager- eller miljøniveau.
Definer miljøvariabler for en enkelt arbejdsproces
Hvis du vil angive en brugerdefineret miljøvariabel for en enkelt arbejdsproces, kan du definere den ved hjælp af nøglen env i arbejdsprocesfilen. Omfanget af en brugerdefineret variabel, der er angivet ved denne metode, er begrænset til det element, hvor den er defineret. Du kan definere variabler, der er begrænset til:
- Hele arbejdsprocessen ved hjælp af
envpå øverste niveau i arbejdsprocesfilen. - Indholdet af et job i en arbejdsproces ved hjælp af
jobs.<job_id>.env. - Et bestemt trin i et job ved hjælp af
jobs.<job_id>.steps[*].env.
Seddel
Både jobs.<job_id>.env og jobs.<job_id>.steps[*].env implementerer kontekster, som beskrives senere i dette modul.
I følgende arbejdsproceseksempel implementeres to variabler, DAY_OF_WEEK og Greeting til at oprette en hilsen, når den køres.
name: Greeting on variable day
on:
workflow_dispatch
env:
DAY_OF_WEEK: Monday
jobs:
greeting_job:
runs-on: ubuntu-latest
env:
Greeting: Hello
steps:
- name: "Say Hello"
run: echo "$Greeting, today is $DAY_OF_WEEK!"
Navngivningskonventioner for miljøvariabler
Når du angiver en miljøvariabel, kan du ikke bruge nogen af standardnavnene for miljøvariablen. Hvis du forsøger at tilsidesætte værdien af en af disse standardvariabler, ignoreres tildelingen.
Drikkepenge
Du kan finde en komplet liste over standardmiljøvariabler ved at gå til Standardmiljøvariabler.
Opret konfigurationsvariabler for et lager
Hvis du vil oprette hemmeligheder eller variabler på GitHub for et personligt kontolager, skal du være lagerejer. Hvis du vil oprette hemmeligheder eller variabler på GitHub for et organisationslager, skal du have admin adgang. Hvis du vil oprette hemmeligheder eller variabler for et personligt kontolager eller et organisationslager via REST-API'en, skal du have samarbejdspartneradgang.
Rangplacering af konfigurationsvariabel
Hvis der findes en variabel med samme navn på flere niveauer, har variablen på det laveste niveau forrang. Hvis en variabel på organisationsniveau f.eks. har samme navn som en variabel på lagerniveau, har variablen på lagerniveau forrang. Hvis en organisation, et lager og et miljø alle har en variabel med samme navn, har variablen på miljøniveau samme prioritet.
Føj scripts til din arbejdsproces
Du kan bruge en Arbejdsproces for GitHub-handlinger til at køre scripts og shellkommandoer, som derefter udføres på den tildelte løber. Følgende eksempel viser, hvordan du bruger nøgleordet run til at udføre kommandoen npm install -g bats på løberen.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- run: npm install -g bats
Hvis du vil køre et script, der er gemt i dit lager, skal du først tjekke lageret ud til løberen. Følgende eksempel: tjekker lageret ud. angiver arbejdsmappen – placeringen af scripts i lageret; og kører my-script.sh scriptet.
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: ./my-script.sh
Alle scripts, som et arbejdsprocesjob skal køre, skal være eksekverbare. Du kan overføre scriptet som et argument til den fortolker, der kører scriptet – f.eks. run: bash script.sh – eller ved at gøre selve filen eksekverbar.