@@ -316,3 +316,65 @@ Podstawowe komendy ułatwiające pracę z tagami:
316
316
Taga można stworzyć zarówno z poziomu workspace, jak i "wyklikać" w Githubie.
317
317
318
318
Więcej do poczytania o tagach można znaleźć w [ oficjalnej dokumentacji] ( https://git-scm.com/book/en/v2/Git-Basics-Tagging ) .
319
+
320
+
321
+ ## GitHub Actions workflows
322
+
323
+ Jednym z najłatwiejszych sposobów weryfikacji jakości kodu jest ich automatyczne sprawdzanie.
324
+ Można spotkać się z wieloma sposobami na automatyzowanie zadań,
325
+ tym które będziemy wykorzystywać na zajęciach będzie usługa Github Actions.
326
+ Służy ona automatyzacji zadań w repozytoriach git.
327
+ Github Actions umożliwia tworzenie i uruchamianie przypływów pracy (ang. * workflows* ),
328
+ które mogą wykonywać określoną pracę po spełnieniu określonych warunków.
329
+ Może to być nowy commit lub wygenerowanie nowej PR.
330
+ Korzystanie z tego typu automatyzacji wspiera ciągłą integrację i ciągłe dostarczanie (CI/CD).
331
+ Co w konsekwencji prowadzi do przyśpieszenia i ulepszenia procesu dostarczania,
332
+ ale też dbania o jego jakość.
333
+
334
+ Przykładowy przepływ pracy realizowany na zajęciach witał się z prefektem w zespole.
335
+
336
+ Aby go stworzyć, tworzyliśmy plik ` hello.py ` , który zawierał linię kodu:
337
+ ``` python
338
+ print (" Hello Ola" )
339
+ ```
340
+ Następnie tworzyliśmy przepływ pracy w folderze/katalogu: ` .github/workflows/ ` w pliku ` hello.yml ` .
341
+ Przepływ wyglądał następująco:
342
+ ``` yaml
343
+ name : Przywitanie z prefektem
344
+
345
+ on :
346
+ push :
347
+ branches : [ "main" ]
348
+ pull_request :
349
+ branches : [ "main" ]
350
+
351
+ permissions :
352
+ contents : read
353
+
354
+ jobs :
355
+ build :
356
+
357
+ runs-on : ubuntu-latest
358
+
359
+ steps :
360
+ - uses : actions/checkout@v4
361
+ - name : Set up Python 3.10
362
+ uses : actions/setup-python@v3
363
+ with :
364
+ python-version : " 3.10"
365
+ - name : Powitanie
366
+ run : python hello.py
367
+ ` ` `
368
+ W pliku deklarowano nazwę, następnie na jakie akcje operacje mają się wykonać automatycznie.
369
+ W tym przypadku było to na nowy commit oraz na PR w obu przypadkach jedynie dla gałęzi ` main`.
370
+ Następnie ustawiono odpowiednie zgody i zdefiniowano `jobs`.
371
+ ` jobs` odpalane są na najnowszym Ubuntu z Pythonem w wersji 3.10.
372
+ Ostatnim elementem jest wywołanie pliku `hello.py`.
373
+
374
+ Na koniec projektu grupy zobowiązane są do stworzenia podstawowych testów dla zadań w projekcie
375
+ i automatyczne ich uruchamiania dla każdego nowego commita i PR na gałęzi głównej (najczęściej *main*).
376
+ Każdy użytkownik ma napisać testy (jeden lub wiele) do jednej funkcji zadania z części programistycznej.
377
+ Do testów można wykorzystać `assert`.
378
+ Testy można napisać w jednym pliku np. `tests.py` lub osobno dla każdego użytkownika.
379
+ Następnie należy zdefiniować nowego yaml'a z automatycznym ich uruchomieniem.
380
+ Testy powinny kończyć się ich poprawnym (na zielono) wykonaniem.
0 commit comments