Tutustu konteksteihin ja lausekkeisiin GitHubissa

Valmis

Kontekstien avulla voit käyttää työnkulkujen suoritusten, muuttujien, juoksijaympäristöjen, töiden ja osavaiheiden tietoja. Kukin konteksti on objekti, joka sisältää ominaisuuksia, jotka voivat olla merkkijonoja tai muita objekteja.

Voit käyttää konteksteja lausekkeen syntaksin avulla. Lauseke voi olla mikä tahansa literaaliarvojen yhdistelmä, viittaukset kontekstiin tai funktiot. Voit yhdistää literaalit, kontekstiviittaukset ja funktiot operaattoreiden avulla.

Yhteyksissä

Kun luot työnkulkuja ja toimintoja, ota aina huomioon, suorittaako koodisi mahdollisesti epäluotettavia syötteitä mahdollisilta hyökkääjiltä. Tiettyjä konteksteja tulee pitää epäluotettavana syötteenä, koska hyökkääjä voi lisätä omaa haitallista sisältöään. Lisätietoja on kohdassa GitHub Actions -suojauksen tiivistus."

Seuraava taulukko sisältää esimerkkejä GitHubissa käytettävissä olevista kontekseista, se ei ole täydellinen luettelo.

Kontekstin nimi Tyyppi Kuvaus
github object Työnkulun suorituksen tiedot.
env object Sisältää työnkulussa, työssä tai vaiheessa määritettyjä muuttujia.
vars object Sisältää muuttujia, jotka on määritetty säilö-, organisaatio- tai ympäristötasoille.
job object Tietoja käynnissä olevasta työstä.

Juomaraha

Täydellinen luettelo kontekseista on Tietoja kontekseista.

Kontekstien käytön määrityksen määrittäminen

GitHub Actions sisältää kaksi muuttujakokoelmaa, joita kutsutaan oletusmuuttujiksi ja -. Nämä muuttujat on tarkoitettu käytettäväksi työnkulun eri kohdissa:

  • Oletusympäristömuuttujat: Nämä ympäristömuuttujat ovat olemassa vain työn suorittamassa juoksijassa.
  • Contexts: Voit käyttää useimpia konteksteja missä tahansa työnkulun vaiheessa, mukaan lukien silloin, kun oletusmuuttujat ei olisi käytettävissä.

Seuraavassa esimerkissä if-lauseke tarkistaa github.ref kontekstin nykyisen haaran nimen määrittämiseksi. if tarkistus käsitellään, ja työ lähetetään juoksijalle vain, jos tulos on true. Kun työ on lähetetty juoksijalle, vaihe suoritetaan ja siinä viitataan juoksijan $GITHUB_REF muuttujaan.

name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

GitHub Actionsissa käytettävissä olevat kontekstit

Seuraava taulukko sisältää käytettävissä olevat ylimmän tason kontekstit, lyhyen kuvauksen ja linkin lisätietoihin objektin ominaisuuksista.

Ylimmän tason konteksti Kuvaus Ominaisuudet ja esimerkit
github Minkä tahansa työnkulun työnkulun työn tai vaiheen aikana käytettävissä oleva ylimmän tason konteksti. github kontekstin ominaisuudet.
env Sisältää työnkulussa, työssä tai vaiheessa määritettyjä muuttujia. Se ei sisällä juoksijaprosessin perimiä muuttujia. env kontekstin ominaisuudet.
vars Sisältää mukautettuja määritysmuuttujia, jotka on määritetty organisaation, säilön ja ympäristön tasoilla. Esimerkkejä vars käytöstä.
job Sisältää tietoja käynnissä olevasta työstä. job kontekstin ominaisuudet.
jobs Vain uudelleenkäytettävissä työnkuluissa käytettävissä, ja sen avulla voidaan vain määrittää tulokset uudelleenkäytettävälle työnkululle. jobs kontekstin ominaisuudet.
steps Sisältää tietoja nykyisen työn suoritetuista vaiheista, joilla on määritettynä id. steps kontekstin ominaisuudet.
runner Sisältää tietoja juoksijasta, joka suorittaa nykyisen työn. runner kontekstin ominaisuudet.
secrets Sisältää niiden salaisten koodien nimet ja arvot, jotka ovat käytettävissä työnkulun suorittamisessa. secrets kontekstin ominaisuudet.
strategy Sisältää tietoja nykyisen työn matriisin suoritusstrategiasta. strategy kontekstin ominaisuudet.
matrix Sisältää nykyiseen työhön sovellettavassa työnkulkutiedostossa määritetyt matriisiominaisuudet. matrix kontekstin ominaisuudet.
needs Sisältää kaikkien töiden tulokset, jotka on määritetty nykyisen työn suoraksi riippuvuudeksi. matrix kontekstin ominaisuudet.
inputs Sisältää toiminnolle, uudelleenkäytettävälle työnkululle tai manuaalisesti käynnistettävälle työnkululle välitettyjä syöteominaisuuksia. inputs kontekstin ominaisuudet.

Lausekkeita

Lausekkeiden avulla voit määrittää ohjelmallisesti ympäristömuuttujia työnkulkutiedostoissa ja käyttää konteksteja. Lauseke voi olla mikä tahansa literaaliarvojen yhdistelmä, viittaukset kontekstiin tai funktiot. Voit yhdistää literaalit, kontekstiviittaukset ja funktiot operaattoreiden avulla.

Lausekkeita käytetään yleisesti työnkulkutiedoston ehdollisen if avainsanan kanssa sen määrittämiseksi, tuleeko vaihe suorittaa. Kun if ehdollinen on true, vaihe suoritetaan.

Sinun on käytettävä tiettyä syntaksia ${{ <expression> }}, jotta voit käskeä GitHubia arvioimaan lausekkeen sen sijaan, että käsittelisit sitä merkkijonona. Poikkeuksena tähän sääntöön on, että käytät lausekkeita if -lauseessa, jossa ne voidaan yleensä jättää pois ${{ ja }}.

Seuraava koodiesimerkki näyttää ympäristömuuttujan määrittämisen.

env:
  MY_ENV_VAR: ${{ <expression> }}

Literaaleja

Voit käyttää lausekkeessa tietotyyppejä boolean, null, numbertai string. Ehdoissa falsy-arvot (false, 0, -0, "", '', null) pakotetaan false ja totuus (true ja muut ei-falsy-arvot) pakotetaan true. Seuraavassa on esimerkkejä literaalien toteuttamisesta.

env:
  myNull: ${{ null }}
  myBoolean: ${{ false }}
  myIntegerNumber: ${{ 711 }}
  myFloatNumber: ${{ -9.2 }}
  myHexNumber: ${{ 0xff }}
  myExponentialNumber: ${{ -2.99e-2 }}
  myString: Mona the Octocat
  myStringInBraces: ${{ 'It''s open source!' }}

Toimijoiden

Operaattoreilla on tärkeä rooli lausekkeiden arvioinnissa. Lauseke voi koostua literaaliarvoista, viittauksista konteksteihin tai funktioista. Operaattorien avulla voit luoda monimutkaisempia lausekkeita yhdistämällä nämä elementit. Seuraavassa on joitakin avainoperaattoreita:

  • loogiset operaattorit:

    • && (ja): Yhdistää kaksi ehtoa, joiden molempien on oltava tosia, jotta kokonaislauseke antaa tulokseksi true-arvon.
    • || (tai): Yhdistää kaksi ehtoa, ja lauseke antaa tulokseksi tosi, jos jompikumpi ehdoista on tosi.
    • ! (ei): Negates ehdon, kääntäen sen totuuden arvon.
  • yhtäläisyysoperaattoreiden:

    • == (yhtä suuri): Vertaa kahta arvoa yhtäsuuruuden puolesta.
    • != (eri suuri kuin): Tarkistaa, jos kaksi arvoa eivät ole yhtä suuret.
  • Vertailuoperaattorit-:

    • < (pienempi kuin)
    • > (suurempi kuin)
    • <= (pienempi tai yhtä suuri kuin)
    • >= (suurempi tai yhtä suuri kuin)

Näiden operaattoreiden avulla voit luoda dynaamisia työnkulkuja määrittämällä, milloin tietyt vaiheet suoritetaan ehtojen perusteella. Muista käyttää oikeaa syntaksia lausekkeille, kuten $\{\{ <expression> \}\}$, asianmukaisen arvioinnin varmistamiseksi.

Lisätietoja operaattoreista on kohdassa Operaattorit.