Implementer variabler og scripts i en arbejdsproces

Fuldført

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 env i 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 env på ø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.