CI/CD Flashcards

1
Q

Opišite strukturo YAML formata, ki se uporablja za definiranje GitHub Actions. Kakšni so ključni elementi v tem formatu?

A
  • name: Ime poteka dela.
  • on: Določa dogodke, ki sprožijo potek dela (npr. push, pull_request).
  • jobs: Skupina nalog (jobs) znotraj poteka dela.
    • Vsak job vsebuje:
    • runs-on: Določa okolje, kjer se naloga izvaja (npr. ubuntu-latest).
    • steps: Koraki, ki jih naloga izvaja.
      • Vsak korak (step) lahko vključuje:
        • name: Ime koraka.
        • uses: Uporablja vnaprej določeno akcijo iz GitHub Marketplace.
        • run: Izvaja ukaze ukazne vrstice.
        • env: Določa okoljske spremenljivke.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Razložite postopek ustvarjanja lastnega “action-runnerja” za GitHub Actions. Katere so osnovne zahteve za delovanje tega runnerja?

A
  1. Ustvarite nov GitHub Action runner.
    mkdir -p ~/actions-runner && cd ~/actions-runner
    curl -o actions-runner-linux-x64-2.284.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.284.0/actions-runner-linux-x64-2.284.0.tar.gz
    tar xzf ./actions-runner-linux-x64-2.284.0.tar.gz
  2. Konfiguracija.
    REPO_URL="https://github.com/your-username/your-repo"
    RUNNER_TOKEN="YOUR_RUNNER_TOKEN"
    ./config.sh --url REPO_URL --token YOUR_RUNNER_TOKEN
  3. Namestitev in zagon
    sudo ./svc.sh install
    sudo ./svc.sh start
  4. Osnovne zahteve za delovanje runnerja:
  • Svež Linux strežnik.
  • Vsaj 4 GB pomnilnika.
  • 1 jedro.
  • 10 GB prostora.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kaj so “artefakti” v kontekstu GitHub Actions in kako jih lahko uporabimo za komunikacijo med nalogami?

A

Artefakti v GitHub Actions so datoteke, ki jih naloge (jobs) ustvarijo in shranijo, ter se lahko uporabijo za komunikacijo med različnimi nalogami znotraj poteka dela. Uporabimo jih lahko tako, da ena naloga ustvari artefakt (npr. datoteko z napakami), ki ga druga naloga nato prebere in uporabi za nadaljnje korake.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Opišite postopek ustvarjanja in uporabe matrice (matrix) v GitHub Actions skripti. Kdaj bi uporabili matrico in kakšne prednosti prinaša?

A

Matrico ustvarimo znotraj definicije naloge (job) v YAML datoteki. Uporablja se za izvajanje iste naloge z različnimi nastavitvami, kot so različne verzije jezika, operacijski sistemi ali konfiguracije. Definicija matrice:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kako zagotovite, da se določena GitHub Action sproži samo ob določenih dogodkih, kot je potiskanje (push) na določeno vejo?

A

To zagotovimo z uporabo on ključa v YAML datoteki in specifičnimi pogoji.

on:
  push:
    branches:
      - main
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kaj se zgodi, ko testna skripta (akcija) pade oz. je neuspešna? Kako lahko obravnavamo in dokumentiramo takšne primere?

A

Ko testna skripta pade, GitHub Actions prikaže rdeče opozorilo v vmesniku, ki kaže, da je prišlo do napake. Lahko preusmerimo izpis napak v datoteko in jih shranimo kot artefakt.

steps:
  - name: Run tests
    run: npm test 2> napaka.txt || exit 0
  - name: Upload error log
    if: failure()
    uses: actions/upload-artifact@v2
    with:
      name: error-log
      path: napaka.txt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Opišite postopek ustvarjanja in objave Docker zabojnika v GitHub Actions. Kako zagotovite, da se ta postopek izvede le, ko so testi uspešno zaključeni?

A
  1. Ustvarimo Dockerfile za našo aplikacijo.
  2. Definiramo GitHub Action skripto za gradnjo in objavo Docker zabojnika.
  3. Poskrbimo, da se ta skripta zažene le ob uspešnem zaključku testne skripte.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly