#1828 - naprawa problemów z Yarnem i GH Actions - #1844
Conversation
|
Po przemyśleniu: nie jestem przekonany, że to jest dobry kierunek zmian. |
8e49571 to
3b10ca1
Compare
2f7b34b to
5125dd5
Compare
|
|
||
| compressionLevel: mixed | ||
|
|
||
| defaultSemverRangePrefix: "" |
There was a problem hiding this comment.
Ta linijka ma wymuszać, by nie były dodawane wersje z prefiksem ^ (przypięta wersja major) oraz ~ (przypięta wersja minor).
| - import_tasks: newrelic.yml | ||
| become: yes | ||
|
|
||
| # the following 3 tasks are to be removed once we migrate to a newer Ubuntu version |
There was a problem hiding this comment.
Zmiany analogiczne jak dla środowiska dev.
| path: "{{ deploy_helper.new_release_path }}/venv/run/" | ||
| state: directory | ||
|
|
||
| - name: Activate yarn |
There was a problem hiding this comment.
Zmiana w związku z podbiciem wersji yarn.
| keep_releases: 2 | ||
|
|
||
| - name: Get revision | ||
| become: yes |
There was a problem hiding this comment.
Zmiana w związku z uprawnieniami w dostępie do katalogu z repozytorium - taki dostęp deploy_user oczywiście ma, natomiast użytkownik wykonujący Ansible w VM niekoniecznie i na to się nadziałem... Co do idei tego taska powinien wykonywać właśnie deploy_user.
| -r requirements.common.txt | ||
|
|
||
| psycopg2==2.9.12 | ||
| psycopg2==2.9.10 |
There was a problem hiding this comment.
Wersje nowsze niż 2.9.10 są "zbyt nowe" i nie działają (środowisko produkcyjne nie wstaje z nimi).
Bot
renovatekiedyś oprócz commitowania zmiany wersji zależności (np. w plikupackage.json) commitował też zaktualizowany plikyarn.lock. W 2025 coś zmieniono w bocie (akurat wtedy bot u nas w ogóle nie działał, bo workflowy nie działały) i długo bot nie robił nic zyarn.lock. Okazuje się, że botrenovatenie chciał współpracować z naszą starą wersjąyarn, więc trzeba było ją podbić. "Konserwatywne" podbicie do3.xnie zadziałało, więc dałem najnowszą wersję4.x. Okazało się jednak, że to pociągnęło za sobą konieczność podbicia wersji NodeJS w naszych workflowach i podbiłem najmniej jak się dało - do 18. Podbicie do 18 sprawiło, że trzeba było podbić Webpacka do wersji5.x, by nie musieć dodawać flagi--openssl-legacy-provider(co swoją drogą prowadziło do licznych problemów) z uwagi na to, że reszta naszego stacka ma już siwe włosy i narzeka na chroniczny ból w krzyżu.TL;DR:
yarn;webpack;webpack;nodew workflowach.Demonstracja (plik
yarn.lockjest modyfikowany przezrenovatew PR w moim forku repo (drobne różnice w tamtejszymrenovate.jsonsą bez znaczenia, to są próby wymuszenia częstszego działania)): w https://github.com/330311/projektzapisy/actions widać przechodzące akcje dla proponowanych przezrenovatezmian i aktualizacjeyarn.lock. Wywołanie:export RENOVATE_TOKEN=[token]lokalnie w shellu;npx renovate 330311/projektzapisy [--dry-run](opcja--dry-runjest opcjonalna, a że to fork właściwego repo, to można śmiało bez niej).Obecna konfiguracja aż prosi się o upgrade reszty komponentów i niestety doskwiera nam, że system był przez kilka ostatnich miesięcy zaniedbany.
Pełny changelog (jeśli nie zaznaczono inaczej, a rozróżnienie miałoby sens, zmiany dla zarówno środowiska deweloperskiego jak i produkcyjnego):
testorazlint;nodesource, a nie domyślne repozytorium wapt, umożliwiając tym samym instalowanie nowszych wersji niż dinozaury z APT;yarnnacorepack enable, zgodnie z aktualnymi zaleceniami (https://yarnpkg.com/corepack);infra/playbooks/dev/services.yml(dotyczącego konfiguracjisystemdw środowisku);webpack(szczegóły w diffie);zapisy/webpack_resources/webpack.config.js(szczegóły w diffie);yarn(np. plikzapisy/.yarnrc.yml);psycopg2do działającej (kompatybilnej z naszym stackiem).