Monthly tasks #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Monthly tasks | |
on: | |
schedule: | |
# at 06:13 on the first day of the month | |
- cron: 13 06 1 * * | |
jobs: | |
create_issue: | |
name: Create issue to upgrade dependencies | |
runs-on: ubuntu-latest | |
permissions: | |
issues: write | |
steps: | |
- name: Create issue to upgrade dependencies | |
uses: imjohnbo/issue-bot@76645b39cda009302cc49d8624af634795e9eab5 | |
with: | |
assignees: "wkillerud, piofinn, fremtindelise" | |
rotate-assignees: true | |
labels: "🔁 round robin, 🔗 dependencies" | |
close-previous: true | |
title: "Oppdatering av avhengigheter" | |
body: | | |
## Fremgangsmåte | |
🧑💻 Kjør `git pull` på `main` og lag en ny branch. | |
🧑💻 Kjør `pnpm update -r` på rotnivå i prosjektet. | |
🧑💻 Kjør `pnpm outdated -r` på rotnivå i prosjektet. | |
Output fra `pnpm outdated` vil vise deg hvilke pakker som trenger å oppdateres manuelt, men også noen som ikke _kan_ oppdateres. Noen ganger har vi avhengigheter som trenger en eldre majorversjon av en pakke, for eksempel `gatsby` som trenger en eldre `mdx-js` og `got`. | |
Du kan sannsynligvis trygt ignorere `overrides` med mindre noe brekker senere. | |
Vi bruker `pnpm.overrides`-feltet i `package.json` til å overstyre våre dependencies sine dependencies. Generelt sett gjør vi dette for å få med oss feilrettinger og sikkerhetsoppdateringer. Noen ganger er disse avhengigheter av avhengigheter av avhengigheter, og ett eller annet sted på veien er en pakke ikke vedlikeholdt. | |
🧑💻 Endre versjoner i `package.json` til versjonen du ønsker. | |
Som nevnt kan du sannsynligvis ignorere `overrides`. Typedefinisjoner for Node kan du la være til vi eventuelt endrer `.nvmrc`. | |
🧑💻 Kjør `pnpm install`. | |
Du skal få en oppdatert `pnpm-lock.yaml`. Ta en titt på diffen og se at det virker fornuftig. | |
🧑💻 Kjør `pnpm audit --fix` på rotnivå i prosjektet. | |
Hvis det er audit-problemer etter oppdateringen din kan det hende du må legge til noen overstyringer i `resolutions` i `package.json`. Se [pnpm-dokumentasjonen](https://classic.pnpmpkg.com/lang/en/docs/selective-version-resolutions/) om du ikke har gjort dette før, eller spør en kollega om hjelp. | |
🧑💻 Lag eventuelle nye patcher. | |
Vi har [noen få pakker hvor vi gjør egne patcher](https://github.com/fremtind/jokul/tree/main/patches) i Jøkul. Disse krever at vi lager en tilsvarende patch på den nye versjonen. Se README for instrukser. | |
🧑💻 Kjør `pnpm build:docs`, `pnpm ci:test` og `pnpm serve`. | |
Sjekk at ting fortsatt bygger, tester går grønt, og at siden funker OK. | |
TypeScript kan finne på å klage over at noe er definert to ganger. Det er typisk `@types/eslint`, `@types/node`, `@types/react` eller `@types/react-dom` som er kilden. Du må i disse tilfellene inn og endre manuelt på lockfila så vi ikke ender opp med duplikate versjoner. Spør en kollega om du står fast. | |
🧑💻 Kjør `pnpm commit` og lag en `chore`-commit. | |
Snart klar for en pull request! | |
🧑💻 Push endringene dine og åpne en pull request. | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |