Miten GitHub Actions automatisoi kehitystehtäviä?
Tässä esittelemme GitHub Actionsin ja työnkulut. Opit, millaisia toimintoja voit käyttää ja mistä ne löytyvät. Tutustut myös esimerkkeihin tällaisista toiminnoista ja siitä, miten ne sopivat työnkulkuun.
GitHub lyhentää aikaa ideasta käyttöönottoon
GitHub on suunniteltu auttamaan kehittäjien ja DevOps-teknikoiden tiimejä kehittämään ja ottamaan sovelluksia käyttöön nopeasti. GitHubissa on monia ominaisuuksia, jotka mahdollistavat nämä tehokkuusedut, mutta ne jakautuvat yleensä toiseen kahdesta luokasta:
- Communication: Mieti kaikkia tapoja, joilla GitHubin avulla kehittäjätiimin on helppo viestiä ohjelmistokehitysprojektista: kooditarkituksia pull-pyynnöissä, GitHub-ongelmat, projektitaulut, wikit, ilmoitukset ja niin edelleen.
- Automation: GitHub Actionsin avulla tiimisi voi automatisoida työnkulkuja ohjelmistokehitysprosessin jokaisessa vaiheessa integroinnista toimitukseen ja käyttöönottoon. Sen avulla voit jopa automatisoida otsikoiden lisäämisen pull-pyyntöihin ja tarkistaa vanhentuneita ongelmia ja pull-pyyntöjä.
Yhdistettyinä nämä ominaisuudet ovat mahdollistaneet sen, että tuhannet kehitystiimit ovat vähentäneet tehokkaasti aikaa, joka kesti heidän alkuperäisestä ideastaan käyttöönottoon.
Työnkulun automatisoinnin käyttäminen kehitysajan lyhentämiseen
Tässä moduulissa keskitymme automatisointiin. Tutustutaan nyt hetki siihen, miten tiimit voivat käyttää automaatiota, jotta tyypillisen kehitys- ja käyttöönottotyönkulun suorittamiseen kuluva aika kuluu.
Mieti kaikkia tehtäviä, jotka on tehtävä sen jälkeen, kun koodi on kirjoitettu, mutta ennen kuin voit käyttää koodia luotettavasti aiottuun tarkoitukseen. Organisaation tavoitteista riippuen sinun on todennäköisesti suoritettava yksi tai useampi seuraavista tehtävistä:
- Varmista, että koodi läpäisee kaikki yksikkötestit.
- Suorita koodin laatu- ja yhteensopivuustarkistuksia varmistaaksesi, että lähdekoodi täyttää organisaation standardit.
- Tarkista koodi ja sen riippuvuudet tunnettujen suojausongelmien osalta.
- Luo koodi integroimalla uusi lähdekoodi useilta (mahdollisesti) osallistujilta.
- Varmista, että ohjelmisto läpäisee integrointitestit.
- Määritä uuden koontiversion versio.
- Toimita uudet binaarit oikeaan tiedostojärjestelmäsijaintiin.
- Ota uudet binaarit käyttöön yhdessä tai useammassa palvelimessa.
- Selvitä, onko jokin näistä tehtävistä ohi, ja ilmoita ongelmasta oikealle henkilölle tai tiimille ratkaisua varten.
Haasteena on tehdä nämä tehtävät luotettavasti, johdonmukaisesti ja kestävällä tavalla. Tämä prosessi sopii erinomaisesti työnkulun automatisointiin. Jos jo luotat GitHubiin, haluat todennäköisesti määrittää työnkulun automatisoinnin GitHub Actionsin avulla.
Mitä GitHub Actions on?
GitHub Actions ovat pakattuja komentosarjoja, joilla voit automatisoida GitHubin ohjelmistokehitystyönkulun tehtäviä. Voit määrittää GitHub Actionsin käynnistämään monimutkaisia työnkulkuja, jotka vastaavat organisaatiosi tarpeita. Käynnistin voi tapahtua aina, kun kehittäjät tarkistavat uuden lähdekoodin tiettyyn haaraan, tietyllä aikavälillä tai manuaalisesti. Tuloksena on luotettava ja kestävä automatisoitu työnkulku, joka johtaa kehitysajan merkittävään lyhentämiseen.
Mistä löydät GitHub Actionsin?
GitHub Actions ovat komentosarjoja, jotka noudattavat yml-tietomuotoa. Jokaisessa säilössä on Actions -välilehti, joka tarjoaa nopean ja helpon tavan aloittaa ensimmäisen komentosarjan määrittäminen. Jos näet työnkulun, joka voi mielestäsi olla hyvä lähtökohta, valitse Määritä -painike, jos haluat lisätä komentosarjan ja aloittaa lähde-yml-kohteen muokkaamisen.
Toiminnot-välilehdessä esiteltyjen GitHub-toimintojen lisäksi voit kuitenkin tehdä seuraavaa:
- Hae GitHub Actionsia GitHub Marketplacen. GitHub Marketplacen avulla voit etsiä ja ostaa työkaluja, jotka laajentavat työnkulkuasi.
- Hae avoimen lähdekoodin projekteja. Esimerkiksi GitHub Actions sisältää monia suosittuja avoimen lähdekoodin säilöjä, jotka sisältävät käytettävissäsi olevan GitHub Actionsin.
- Kirjoita oma GitHub Actions alusta alkaen. Voit tehdä niistä avoimen lähdekoodin tai jopa julkaista ne GitHub Marketplacessa.
Avoimen lähdekoodin GitHub Actionsin käyttäminen
Monet GitHub-toiminnot ovat avointa lähdekoodia ja saatavilla kaikille, jotka haluavat käyttää niitä. Kuten kaikkien avoimen lähdekoodin ohjelmistojen kohdalla, sinun on kuitenkin tarkistettava ne huolellisesti ennen kuin käytät niitä projektissasi. Samoin kuin suositellut yhteisöstandardit avoimen lähdekoodin ohjelmiston kanssa, kuten README, toimintasäännöt, osallistuminen tiedostoon ja mallien antaminen, voit noudattaa näitä suosituksia käyttäessäsi GitHub Actions -toimintoja:
- Tarkista toiminnon
action.ymltiedosto syötteiden ja tulosteiden osalta ja varmista, että koodi tekee, mitä se sanoo tekevänän. - Tarkista, onko toiminto GitHub Marketplacessa. Tämä tarkistus kannattaa, vaikka toiminnon ei pitäisi olla GitHub Marketplacessa, jotta se olisi kelvollinen.
- Tarkista, onko toiminto vahvistettu GitHub Marketplacessa. Vahvistus tarkoittaa sitä, että GitHub hyväksyi tämän toiminnon käytön. Sinun kannattaa kuitenkin tarkistaa se ennen sen käyttöä.
- Sisällytä käyttämäsi toiminnon versio määrittämällä Git-viittaus, SHA tai tunniste.
GitHub-toimintojen tyypit
GitHub-toimintoja on kolmenlaisia: säilön toiminnot, JavaScript-toiminnot ja yhdistelmätoiminnot.
Kun säilön toimintoja, ympäristö on osa toiminnon koodia. Nämä toiminnot voidaan suorittaa vain Linux-ympäristössä, jota GitHub isännöi. Säilötoiminnot tukevat monia eri kieliä.
JavaScript-toiminnot eivät sisällytä ympäristöä koodiin. Sinun on määritettävä ympäristö näiden toimintojen suorittamiseksi. Voit suorittaa nämä toiminnot näennäiskoneessa (näennäiskone) pilvipalvelussa tai paikallisesti. JavaScript-toiminnot tukevat Linux-, macOS- ja Windows-ympäristöjä.
yhdistelmätoimintojen avulla voit yhdistää useita työnkulun vaiheita yhteen toimintoon. Tämän ominaisuuden avulla voit esimerkiksi koota yhteen useita suorituskomentoja toiminnoksi ja käyttää sitten työnkulkua, joka suorittaa niputetut komennot yksittäisenä vaiheena kyseistä toimintoa käyttämällä.
GitHub-toiminnon anatomia
Tässä on esimerkki toiminnosta, joka suorittaa säilön Git-uloskuittauksen. Tämä toiminto toiminnot/checkout@v1on osa työnkulun vaihetta. Tämä vaihe luo myös uloskuittatun Node.js koodin. Seuraavassa osiossa käsitellään työnkulkuja, töitä ja osavaiheita.
steps:
- uses: actions/checkout@v1
- name: npm install and build webpack
run: |
npm install
npm run build
Oletetaan, että haluat käyttää säilötoimintoa säilökoodin suorittamiseen. Toiminto saattaa näyttää tältä:
name: "Hello Actions"
description: "Greet someone"
author: "octocat@github.com"
inputs:
MY_NAME:
description: "Who to greet"
required: true
default: "World"
runs:
uses: "docker"
image: "Dockerfile"
branding:
icon: "mic"
color: "purple"
Huomaa inputs. Täältä saat MY_NAME-nimisen muuttujan arvon. Tämä muuttuja määritetään työnkulussa, joka suorittaa tämän toiminnon.
runs-osassa voit määrittää dockeruses -määritteessä. Kun määrität tämän arvon, sinun on annettava Docker-kuvatiedoston polku. Tässä tapauksessa dockerfile. Emme käsittele Dockeria tässä, mutta jos haluat lisätietoja, tutustu Johdanto Docker-säilöihin -moduuliin.
Viimeisessä osiossa brändäystä, voit mukauttaa toimintoasi GitHub Marketplacessa, jos päätät julkaista sen siellä.
Löydät täydellisen luettelon toiminnon metatiedoista github-toimintojen Metadata-syntaksista.
Mikä GitHub Actions -työnkulku on?
GitHub Actions -työnkulku on prosessi, jonka määrität säilöösi ohjelmistokehityksen elinkaaritehtävien, kuten GitHub Actionsin, automatisoimiseksi. Työnkulun avulla voit luoda, testata, pakata, julkaista ja ottaa käyttöön minkä tahansa projektin GitHubissa.
Voit luoda työnkulun lisäämällä toimintoja .yml-tiedostoon GitHub-säilön .github/workflows hakemistossa.
Tulevassa harjoituksessa työnkulkutiedostosi main.yml näyttää tältä:
name: A workflow for my Hello World file
on: push
jobs:
build:
name: Hello world action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: ./action-a
with:
MY_NAME: "Mona"
on: Huomaa määrite, sillä sen arvo on käynnistin, joka määritetään, kun tämä työnkulku suoritetaan. Tässä se käynnistää suorituksen, kun säilöösi tulee push-tapahtuma. Voit määrittää yksittäiset tapahtumat, kuten on: push, tapahtumamatriisin, kuten on: [push, pull_request], tai tapahtumamäärityskartan, joka ajoittaa työnkulun tai rajoittaa työnkulun suorittamisen tiettyihin tiedostoihin, tunnisteisiin tai haaramuutoksiin. Kartta saattaa näyttää suunnilleen tältä:
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
pull_request:
branches:
- main
# Also trigger on page_build, as well as release created events
page_build:
release:
types: # This configuration doesn't affect the page_build event above
- created
Tapahtuma käynnistyy kaikissa tapahtuman toimintotyypeissä, ellet määritä tyyppiä tai tyyppejä. Kattava luettelo tapahtumista ja niiden toimintatyypeistä on GitHub-dokumentaation kohdassa: Työnkulkuja käynnistävät tapahtumat.
Työnkulussa on oltava vähintään yksi työ. Työ on työnkulun osa, joka liittyy juoksijan. Juoksija voi olla GitHub-isännöity tai omatoiminen, ja työ voidaan suorittaa tietokoneessa tai säilössä. Määrität juoksijalle määritteen runs-on: . Tässä neuvot työnkulun suorittamaan tämän työn ubuntu-latest.
Jokaisella työllä on suoritettavan osavaiheet. Tässä esimerkissä vaihe käyttää toimintoa toimintoja/checkout@v1 säilön tarkistamiseen. Kiinnostavaa on uses: ./action-a arvo, joka on polku action.yml tiedostoon koottavaan säilötoimintoon.
Tämän työnkulkutiedoston viimeinen osa määrittää tämän työnkulun MY_NAME muuttuja-arvon. Muista, että säilötoiminto otti vastaan syötteen nimeltä MY_NAME.
Lisätietoja työnkulun syntaksista on Workflow-syntaksi GitHub Actions
Toimintoihin viittaaminen työnkuluissa
Kun luot työnkulkuja GitHub Actionsissa, voit viitata eri lähteistä peräisin oleviin toimintoihin. Näitä toimintoja voidaan käyttää työnkulkujen tehtävien automatisointiin. Alla on ensisijaiset lähteet, joissa työnkulut voivat viitata toimintoihin:
Julkaistu Docker-säilön näköistiedosto Docker Hubissa
Työnkulut voivat viitata toimintoihin, jotka on julkaistu Docker-säilön kuvina Docker Hubissa. Nämä toiminnot ovat säilössä ja sisältävät kaikki toiminnon suorittamiseen tarvittavat riippuvuudet. Jos haluat käyttää tällaista toimintoa, määritä Docker-kuvausestyönkulun vaiheen määritteessä. Esimerkkejä:steps: - name: Run a Docker action uses: docker://<docker-image-name>:<tag>Mikä tahansa julkinen arkisto
Julkisissa tietovarastoissa isännöityihin toimintoihin voidaan viitata suoraan työnkuluissasi. Nämä toiminnot ovat kaikkien käytettävissä, ja niitä voidaan käyttää määrittämällä määritteeseen säilön nimi ja versio (Git-viite, SHA tai tagi).usesEsimerkkejä:steps: - name: Use a public action uses: actions/checkout@v3
[! TÄRKEÄÄ]
Paremman suojauksen takaamiseksi käytä täydellistä toimitus-sha:ta, kun viittaat toimintoihin – älä vain tunnisteeseen, kuten
@v3.
Näin varmistat, että työnkulkusi käyttää aina täsmälleen samaa koodia, vaikka toimintoa päivitettäisiin tai muutettaisiin myöhemmin.
Esimerkki:uses: actions/checkout@c2c1744e079e0dd11c8e0af4a96064ca4f6a2e9e
-
Sama säilö kuin työnkulkutiedostosi
Voit viitata toimintoihin, jotka on tallennettu samaan säilöön kuin työnkulkutiedosto. Tämä ominaisuus on hyödyllinen mukautetuissa toiminnoissa, jotka liittyvät projektiisi. Jos haluat viitata tällaisiin toimintoihin, käytä suhteellista polkua toiminnon hakemistoon. Esimerkki:steps: - name: Use a local action uses: ./path-to-action
Lisätietoja on GitHub Actionsin suojauksen vahvistamisohjeissa.
-
Yrityksen markkinapaikka
Jos organisaatiosi käyttää GitHub Enterprisea, voit viitata yrityksesi yksityisen markkinapaikan toimintoihin. Organisaatiosi kuratoi ja hallinnoi näitä toimintoja, mikä varmistaa sisäisten standardien noudattamisen. Esimerkki:steps: - name: Use an enterprise marketplace action uses: enterprise-org/action-name@v1
Huomautus
- Myös yksityisten tietovarastojen toimintoihin voidaan viitata, mutta ne edellyttävät asianmukaista todennusta ja käyttöoikeuksia.
- Kun viittaat toimintoihin, määritä aina versio (Git-viite, SHA tai tunniste) johdonmukaisuuden varmistamiseksi ja odottamattomien muutosten välttämiseksi.
Lisätietoja on kohdassa Viittaustoiminnot työnkuluissa.
GitHub-isännöity vs. itseisisännät juoksijat
Mainitsimme lyhyesti, että juoksijat liittyvät työhön. Juoksija on vain palvelin, johon on asennettu GitHub Actions -juoksijasovellus. Edellisessä työnkulun esimerkissä työlohkossa oli runs-on: ubuntu-latest määrite, joka kertoi työnkululle, että työ suoritetaan käyttämällä ympäristössä suoritettavaa ubuntu-latest GitHub-isännöimää juoksijaa.
Juoksijoiden kohdalla on valittavana kaksi vaihtoehtoa: GitHub-isännöidyt juoksijat tai itseisännät juoksijat. Jos käytät GitHub-isännöityä juoksijaa, jokainen työ suoritetaan tuoreessa virtuaaliympäristöesiintymässä. Määrittämäsi GitHub-isännöimä juoksijatyyppi runs-on: {operating system-version} sitten määrittää tämän ympäristön. Itse isännöityjen juoksijoiden kanssa sinun on käytettävä itse isännöityä tunnistetta, sen käyttöjärjestelmää ja järjestelmäarkkitehtuuria. Esimerkiksi itse isännöity juoksija, jolla on Linux-käyttöjärjestelmä ja ARM32-arkkitehtuuri, näyttäisi seuraavalta: runs-on: [self-hosted, linux, ARM32].
Jokaisella juoksijatyypillä on etunsa, mutta GitHubissa isännöidyt juoksijat tarjoavat nopeamman ja yksinkertaisemman tavan suorittaa työnkulkuja, vaikka vaihtoehtoja on rajallinen. Itse isännöidyt juoksijat ovat erittäin määritettävissä oleva tapa suorittaa työnkulkuja omassa mukautetussa paikallisessa ympäristössäsi. Voit suorittaa itse isännöityjä juoksijoita paikallisesti tai pilvipalvelussa. Voit myös itse isännöityjen juoksijoiden avulla luoda mukautettuja laitteistomäärityksiä, joissa on enemmän käsittelytehoa tai muistia. Tämän tyyppisen määrityksen avulla voidaan suorittaa suurempia töitä, asentaa paikalliseen verkkoon käytettävissä olevia ohjelmistoja ja valita käyttöjärjestelmä, jota GitHubissa isännöidyt juoksijat eivät tarjoa.
GitHub Actionsissa voi olla käyttörajoituksia
GitHub Actionsissa on joitakin käyttörajoituksia gitHub-palvelupaketin ja sen mukaan, onko juoksijasi GitHub-isännöity vai itse isännöity. Lisätietoja käyttörajoituksista saat GitHub-dokumentaatiosta, Käyttörajoitukset, laskutus ja hallinta.
GitHub isännöi suurempia juoksijoita
GitHub tarjoaa työnkuluille suurempia juoksijoita, jotka vaativat enemmän resursseja. Nämä juoksijat ovat GitHub-isännöityjä ja tarjoavat tavallista enemmän suoritinta, muistia ja levytilaa. Ne on suunniteltu käsittelemään resurssi-intensiivisiä työnkulkuja tehokkaasti, mikä takaa parhaan mahdollisen suorituskyvyn vaativille tehtäville.
Juoksijoiden koot ja selitteet
Suuremmat juoksijat ovat käytettävissä useissa kokoonpanoissa tarjoten parannettuja vCPUs-, RAM- ja SSD-tallennustiloja erilaisten työnkulkuvaatimusten täyttämiseksi. Nämä määritykset sopivat erinomaisesti esimerkiksi seuraaviin tilanteisiin:
- Suurten koodaajien kääntäminen laajoilla lähdetiedostoilla.
- Kattavien testiohjelmistojen suorittaminen, mukaan lukien integrointi ja päästä päähän -testit.
- Suurten tietojoukkojen käsitteleminen tietoanalyysia tai koneoppimistehtäviä varten.
- Monimutkaisia riippuvuuksia tai suuria binaaritulosteita sisältävien sovellusten luominen.
- Suorituskykyisten simulaatioiden tai laskennallisen mallinnuksen suorittaminen.
- Videokoodauksen, hahmonnuksen tai muiden multimedian käsittelytyönkulkujen suorittaminen.
Jos haluat käyttää suurempaa juoksijaa, määritä työnkulkutiedoston määritteeseen haluamasi juoksijan otsikko runs-on . Jos haluat esimerkiksi käyttää juoksijaa, jolla on 16 näennäisyksiköä ja 64 Gt RAM-muistia, määritä runs-on: ubuntu-latest-16core.
jobs:
build:
runs-on: ubuntu-latest-16core
steps:
- uses: actions/checkout@v2
- name: Build project
run: make build
Nämä suuremmat juoksijat säilyttävät yhteensopivuuden olemassa olevien työnkulkujen kanssa sisällyttämällä niihin samat esiasentetut työkalut kuin vakiosuorittimien ubuntu-latest .
Katso lisätietoja suurempien juoksijoiden kokoa GitHub-dokumentaatiosta
Suurempien juoksijoiden hallinta
GitHub tarjoaa työkaluja, joilla voit hallita suurempia juoksimia tehokkaasti, mikä varmistaa optimaalisen resurssien käytön ja kustannusten hallinnan. Tässä on joitakin suurempien juoksijoiden hallinnan keskeisiä osa-alueita:
Käytön valvonta
Voit valvoa suurempien juoksijoiden käyttöä säilön tai organisaation asetusten GitHub Actions -käyttösivulla. Tällä sivulla on tietoja suoritettavien töiden määrästä, suorituksen kokonaisajasta ja niihin liittyvistä kustannuksista.
Käyttöoikeuksien hallinta
Voit hallita suurempien juoksijoiden käyttöoikeuksia määrittämällä säilön tai organisaatiotason käytännöt. Tämä määritys varmistaa, että vain valtuutetut työnkulut tai tiimit voivat käyttää näitä korkean resurssin juoksijoita.
Kustannusten hallinta
Suuremmille juoksijoille aiheutuu ylimääräisiä kustannuksia käytön mukaan. Jos haluat hallita kustannuksia, harkitse seuraavia ehdotuksia:
- Käytä suurempia juoksimia vain työnkuluissa, jotka vaativat suuria resursseja.
- Vähennä suorituspalveluita optimoimalla työnkulkuja.
- Valvo laskutustietoja säännöllisesti kulujen seuraamiseksi.
Työnkulkujen skaalaus
Jos työnkulkusi edellyttävät usein suurempien juoksijoiden käyttöä, harkitse skaalausstrategioita, kuten:
- Käyttämällä itse isännöityjä juoksijoita ennakoitaviin kuormituksille.
- Työnkulkujen jakaminen pienempiin työpaikkoihin kuormituksen jakamiseksi vakiosuorittimien kesken.