CI/CD GitHub Actionsilla ja DevOps-putket · Oppitunti

Mukautettujen GitHub Actions -toimintojen kehittäminen

Oppikaa luomaan omia uudelleenkäytettäviä mukautettuja Actions-toimintoja JavaScriptillä tai Dockerilla GitHub Actionsin toiminnallisuuden laajentamiseksi.

Oppitunti 1/412 vaihetta

Mukautettujen GitHub Actions -toimintojen kehittäminen on ilmainen CI/CD GitHub Actionsilla ja DevOps-putket-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CI/CD GitHub Actionsilla ja DevOps-putket-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CI/CD GitHub Actionsilla ja DevOps-putket-kurssilla on yhteensä 4 oppituntia.

GitHub Actionsin laajentaminen

Mitä jos työnkulussanne tarvitaan tietty tehtävä, jota GitHub Actions ei tarjoa valmiina? Tai jos haluatte käyttää uudelleen monimutkaista logiikkaa?

Custom actionien avulla voitte rakentaa työnkulkuihin omia uudelleenkäytettäviä työkaluja. Ne ovat kuin pieniä ohjelmia, jotka suorittavat tietyn tehtävän tarpeidenne mukaisesti.

Mukauttamisen voima

Custom actionit tarjoavat CI/CD-putkillenne useita hyötyjä:

  • Uudelleenkäytettävyys: Kirjoittakaa kerran ja käyttäkää monissa työnkuluissa ja repositorioissa.
  • Standardointi: Varmistakaa yhdenmukaiset prosessit koko organisaatiossanne.
  • Abstrahointi: Piilottakaa monimutkainen logiikka yksinkertaisen rajapinnan taakse.
  • Integraatio: Olkaa vuorovaikutuksessa tiettyjen sisäisten työkalujen tai APIen kanssa.

JavaScript vai Docker?

GitHub Actions tukee kahta ensisijaista tapaa luoda custom actioneita:

  • JavaScript Actions: JavaScriptillä (tai TypeScriptillä) kirjoitetut Actionit suoritetaan suoraan runner-koneella. Ne ovat nopeita ja helppoja yksinkertaisissa tehtävissä.
  • Docker Container Actions: Ympäristö ja koodi paketoidaan Docker-imagen sisään. Tämä sopii erityisesti Actioneille, jotka tarvitsevat tiettyjä riippuvuuksia tai ohjelmointikieliä.

Actionin määrittäminen

Jokainen custom action tarvitsee juurihakemistoonsa action.yml-tiedoston. Tämä YAML-tiedosto toimii manifestina, joka kertoo GitHub Actionsille tietoja Actionista:

  • name ja description: Mitä Action tekee.
  • inputs: Actionin vastaanottamat tiedot.
  • outputs: Actionin tuottamat tiedot.
  • runs: Miten Action suoritetaan (esimerkiksi JavaScript-tiedostona tai Docker-imagena).

Yksinkertainen JS Action -esimerkki

Tarkastellaan yksinkertaista JavaScript Actionia. Tarvitsette action.yml- ja index.js-tiedostot. action.yml määrittää Actionin metatiedot ja suoritusympäristön.

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

JavaScriptin kirjoittaminen

index.js-tiedosto sisältää varsinaisen logiikan. Käytämme @actions/core-toolkittiä syötteiden lukemiseen ja tulosteiden määrittämiseen.

Kokeilkaa tämän yksinkertaisen JavaScript-koodinpätkän suorittamista nähdäksenne, miten syötteet ja tulosteet toimivat käsitteellisesti myös kokonaisen työnkulun ulkopuolella:

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

Docker Actionien perusteet

Monimutkaisempiin ympäristöihin Docker-container Actionit ovat tehokas ratkaisu. Niihin kuuluu Dockerfile, joka määrittää container-imagen ja sisältää kaikki tarvittavat riippuvuudet.

action.yml-tiedostonne viittaa tähän imageen ja kertoo GitHub Actionsille, että se tulee rakentaa ja suorittaa.

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

Actionin ympäristö

Dockerfile määrittää base-imagen, asentaa riippuvuudet ja määrittää Actionin entry pointin. Näin Action suoritetaan yhdenmukaisessa ja hallitussa ympäristössä.

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Docker Actionien skriptaus

Docker-containerin sisällä entrypoint-skriptinne (esimerkiksi entrypoint.sh) vastaanottaa syötteet ympäristömuuttujina (joiden etuliite on INPUT_). Se määrittää tulosteet kirjoittamalla $GITHUB_OUTPUT-ympäristömuuttujan määrittämään tiedostoon.

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Actionien parhaat käytännöt

Kun kehitätte custom actioneita, ottakaa huomioon seuraavat vinkit vakaiden ja ylläpidettävien työkalujen luomiseksi:

  • Versiointi: Käyttäkää semanttista versiointia (esimerkiksi v1 ja v2) vakauden varmistamiseksi.
  • Testaus: Testatkaa Action huolellisesti paikallisesti ja työnkuluissa.
  • Virheenkäsittely: Toteuttakaa selkeät virheilmoitukset ja hallitut epäonnistumiset.
  • Tietoturva: Puhdistakaa syötteet ja välttäkää arkaluonteisten tietojen paljastamista.
  • Dokumentaatio: Tarjotkaa selkeät käyttöohjeet README-tiedostossanne.

Action-tyypin tarkistus

Teidän on luotava custom GitHub Action, joka tarvitsee tietyn Python-kirjaston, jota ei ole esiasennettu tavallisille GitHub Actions -runnereille. Minkä tyyppinen Action sopii tähän tilanteeseen yleensä parhaiten?

Custom Actionien yhteenveto

Tutustuimme siihen, miten GitHub Actionsia voidaan laajentaa luomalla omia custom actioneita. Opitte kaksi päätyyppiä: JavaScript- ja Docker container -Actionit sekä action.yml-tiedoston keskeisen roolin. Käsittelimme myös syötteiden, tulosteiden ja kummankin tyypin ydinlogiikan määrittämistä sekä kehityksen parhaita käytäntöjä.

Custom actionit ovat tehokas keino lisätä CI/CD-putkien uudelleenkäytettävyyttä ja standardointia!

Aloita maksutta

Opi CI/CD GitHub Actionsilla ja DevOps-putket tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Mukautettujen GitHub Actions -toimintojen kehittäminen” ilmainen?

Kyllä – oppitunnin ”Mukautettujen GitHub Actions -toimintojen kehittäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CI/CD GitHub Actionsilla ja DevOps-putket-kurssin, päivitä CoddyKit PROhon. CI/CD GitHub Actionsilla ja DevOps-putket-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Mukautettujen GitHub Actions -toimintojen kehittäminen”?

Oppikaa luomaan omia uudelleenkäytettäviä mukautettuja Actions-toimintoja JavaScriptillä tai Dockerilla GitHub Actionsin toiminnallisuuden laajentamiseksi. Harjoittelet CI/CD GitHub Actionsilla ja DevOps-putket-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni CI/CD GitHub Actionsilla ja DevOps-putket-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin CI/CD GitHub Actionsilla ja DevOps-putket-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Mukautettujen GitHub Actions -toimintojen kehittäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä CI/CD GitHub Actionsilla ja DevOps-putket-oppitunnilla?

Kyllä. Jokainen CI/CD GitHub Actionsilla ja DevOps-putket-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mukautettujen GitHub Actions -toimintojen kehittäminen
  2. Itse hallitut suorittajat paikalliseen käyttöön
  3. Integrointi yritysjärjestelmiin
  4. Yhdistelmäactionit ja julkaiseminen Marketplaceen
← Takaisin: CI/CD GitHub Actionsilla ja DevOps-putket