iiuni / projektzapisy

System Zapisów na zajęcia w Instytucie Informatyki Uniwersytetu Wrocławskiego
https://zapisy.ii.uni.wroc.pl
31 stars 10 forks source link

1683 akcje githuba wykorzystywane do testow korzystaja ze starej wersji nodejs #1693

Open moojek opened 5 months ago

moojek commented 5 months ago

Na razie tylko zmiana wersji akcji, będę jeszcze patrzył co się zmieniło między wersjami i jaki wpływ to może mieć na nasze repozytorium, natomiast warningi już się na ten moment nie pojawiają.

lgpawel commented 4 months ago

Gdzie można więcej poczytać o tym, czego to właściwie są wersje? Dlaczego rozwiązanie jest takie, a nie przez zmianę klucza NODE_VERSION wyżej w tym samym pliku konfiguracyjnym? (I trochę poza wąsko rozumianym konkursem: dlaczego w akcji lint nie pojawiają się analogiczne ostrzeżenia, choć wszystkie numerki w jej konfiguracji są takie same?)

Ale przy okazji widzę tu pewien ogólniejszy kłopot. Jak rozumiem, akcje Githuba powinny być wykonywane w warunkach możliwie najbardziej przypominających to, co robimy naprawdę, czyli środowisko developerskie, a zwłaszcza produkcyjne. Tymczasem, jak patrzę do playbooków https://github.com/iiuni/projektzapisy/blob/master-dev/infra/playbooks/configure.yml i https://github.com/iiuni/projektzapisy/blob/master-dev/infra/playbooks/dev/playbook.yml, to wydaje mi się, że np. wersja Node'a jest w tych środowiskach... taka, jaka akurat się zainstaluje przez apt (co w dodatku dla wyspecyfikowanego w Vagrantfile Ubuntu 20.04 oznacza najwyraźniej 10). Może warto wymyślić, jak to zapewnić w jawniejszy sposób (niezależnie od nieaktualności ww. wersji systemu operacyjnego)?

moojek commented 4 months ago
  1. W akcji lint warningi również się pojawiają, przynajmniej u mnie na branchu image Oczywiście to też poprawię, moje niedopatrzenie.
  2. Ja zmieniłem wersje akcji (po prostu inny release), wersja node zmienia się pod spodem w repo akcji (por. https://github.com/actions/checkout/blob/v2/action.yml vs https://github.com/actions/checkout/blob/v4/action.yml)
  3. Mogę się mylić, ale wydaje mi się, że ten node o którym są warningi w żaden sposób nie dotyka naszego stacka. To w mojej interpretacji jest jedynie wersja "silnika", w którym są wykonywane wszystkie akcje. I tak: możemy poprosić poprzez akcję actions/setup-node@v4 i zmienną NODE_VERSION o setup node'a w wyspecyfikowanej wersji w celu np. testów na tej wersji, natomiast sam program/skrypt, który tego node'a w środowisku GH Actions zainstaluje itd. jest uruchamiany za pomocą wersji Node która jest podana w action.yml z repo akcji. Mam nadzieję, że nie zagmatwałem jeszcze bardziej :)
lgpawel commented 3 months ago
  1. W akcji lint warningi również się pojawiają, przynajmniej u mnie na branchu

OK, pewnie poprzednią wiadomość pisałem bez dokładnego sprawdzenia.

  1. Ja zmieniłem wersje akcji (po prostu inny release), wersja node zmienia się pod spodem w repo akcji (por. https://github.com/actions/checkout/blob/v2/action.yml vs https://github.com/actions/checkout/blob/v4/action.yml)

OK. Niezależnie od innych rozważań – czy GitHub gdzieś podsumowuje takie zmiany, czy trzeba grzebać w szczegółach konfiguracji jw.?

  1. Mogę się mylić, ale wydaje mi się, że ten node o którym są warningi w żaden sposób nie dotyka naszego stacka. To w mojej interpretacji jest jedynie wersja "silnika", w którym są wykonywane wszystkie akcje. I tak: możemy poprosić poprzez akcję actions/setup-node@v4 i zmienną NODE_VERSION o setup node'a w wyspecyfikowanej wersji w celu np. testów na tej wersji, natomiast sam program/skrypt, który tego node'a w środowisku GH Actions zainstaluje itd. jest uruchamiany za pomocą wersji Node która jest podana w action.yml z repo akcji. Mam nadzieję, że nie zagmatwałem jeszcze bardziej :)

Czyli to dotyczy jakiegoś tam automatycznego przygotowywania maszyny wirtualnej (itp.), natomiast kiedy nasze playbooki wywołują przykładowo yarn lint czy yarn dev:tc to już wszystko się dzieje wewnątrz tej maszyny przy wersji Node'a podyktowanej przez NODE_VERSION? To byłoby OK (choć aktualizacja Node po naszej stronie byłaby niezależnie od tego na rzeczy); gdyby udało się znaleźć jakieś tego potwierdzenie w dokumentacji GitHub Actions, to dla pamięci chętnie dodałbym je do Wiki.

moojek commented 3 months ago

czy GitHub gdzieś podsumowuje takie zmiany, czy trzeba grzebać w szczegółach konfiguracji jw.?

Na pewno takie informacje znajdują się w release notes'ach, np. https://github.com/actions/checkout/releases/tag/v3.0.0.

Czyli to dotyczy jakiegoś tam automatycznego przygotowywania maszyny wirtualnej (itp.), natomiast kiedy nasze playbooki wywołują przykładowo yarn lint czy yarn dev:tc to już wszystko się dzieje wewnątrz tej maszyny przy wersji Node'a podyktowanej przez NODE_VERSION?

Tak.

gdyby udało się znaleźć jakieś tego potwierdzenie w dokumentacji GitHub Actions, to dla pamięci chętnie dodałbym je do Wiki.

Selekcja setupowanej i później wykorzystywanej wersji Node dzieje się w workflow filesach poprzez podanie parametru node-version:

- uses: actions/setup-node@v4
  with:
    node-version: ${{ env.NODE_VERSION }}

zgodnie z instrukcją z repo akcji. To, że silnik akcji pod spodem ma tam jakąś swoją wersję Node chyba nie jest udokumentowane, bo też z perspektywy end-usera nie jest to jakoś specjalnie interesujące jak on działa (do momentu kiedy nie wyskoczy nam taki warning oczywiście 😄).