CI/CD potrafi bardzo usprawnić naszą pracę, automatyzując część procesów. Dzięki temu nasz projekt jest “pilnowany” 24/7. A my mamy więcej czasu na ważniejsze sprawy. Jeśli korzystasz z Githuba, to koniecznie sprawdź Github Actions.
Github Actions jest wbudowanym narzędziem CI/CD w Githuba. Możesz go stosować dla wszystkich swoich repozytoriów. Do czego możesz to wykorzystywać? Najczęstsze przypadki użycia to:
Wszystko to pomaga ci zautomatyzować prace w projekcie i znacząco podnieść jakość kodu. A to wszystko powoduje powstanie lepszej aplikacji końcowej.
To jest najprostszy i według mnie najważniejszy sposób utrzymywania jakości w kodzie. Dzięki poniższym linijkom masz pewność, że to, co trafia do głównej gałęzi, utrzymuje standardy, jakie zostały przyjęte w kodzie. Czyli same zalety za 5 minut roboty. Wystarczy, że weźmiesz poniższy kod i wstawisz do swojego projektu.
name: CI
on:
pull_request:
branches:
- main
jobs:
run_all:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Setup Node.js
uses: actions/[email protected]
with:
node-version: '14.x'
- name: Installing dependencies
run: npm i
- name: Run linting
run: npm run lint
- name: Run test
run: npm run test
- name: Run build
run: npm run build
Plik musisz umieścić w folderze twój_projekt/.github/workflows/nazwa_konfiguracji.yml. Jako nazwa pliku możesz dać np.: main.yml
Co się dzieje w tej konfiguracji?
Po pierwsze mamy informacje, kiedy będzie się uruchamiała ta automatyzacja - w tym przypadku jest to za każdym razem, gdy zrobimy pull request do gałęzi main.
Dalej mamy konfigurację jobów
. Powyższa konfiguracja składa się z jednego joba i kilku kroków.
Kroki są następujące:
Uzyskujemy dostęp do kodu przy pomocy actions/[email protected]
Pobieramy aktualną wersję Node’a
Instalujemy wszystkie potrzebne zależności
Uruchamiana jest statyczna analiza kodu
Uruchamianie są testy jednostkowe
Uruchomione jest budowanie projektu
Po co budować projekt? Są dwa powody. Po pierwsze sprawdzamy, czy nie występują jakieś błędy podczas budowania. Po drugie tak zbudowaną aplikację można gdzieś umieścić.
Co tu jeszcze można dodać?
I to tyle. Jak wiesz co robić, to napisanie całej konfiguracji zajmuje 5 minut. A po co robić to tutaj, a nie ręcznie? Bo jeśli robisz coś ręcznie, to istnieje duża szansa, że kiedyś zapomnisz, by coś sprawdzić. Na przykład z pośpiechu, w piątek po południu, zapomnisz puścić testy po “małej zmianie” i zepsujesz produkcję. Słaba perspektywa, co nie? Dlatego zachęcam do implementacji tego od razu w swoim projekcie.
Jeśli temat cię zainteresował to mam dla ciebie super wiadomość. Napisałem, krótki ebook na temat Github Actions (i nie tylko). Jeśli chcesz przenieść swoje repozytorium na kolejny poziom, to potrzebujesz właśnie tego ebooka.
Co znajdziesz w ebooku?
I to wszystko dostaniesz ZA DARMO. Wystarczy, że zapiszesz się do newslettera na https://ci.fsgeek.pl/
Oprócz tego zyskujesz: