Skip to content

Commit b459424

Browse files
committed
build: update justfile and reuseable-ci
Signed-off-by: Josef Andersson <josef.andersson@digg.se>
1 parent 01eb26c commit b459424

File tree

11 files changed

+148
-259
lines changed

11 files changed

+148
-259
lines changed

.conform.yaml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
# SPDX-FileCopyrightText: 2025 Digg - Agency for Digital Government
2-
#
3-
# SPDX-License-Identifier: CC0-1.0
4-
5-
---
61
policies:
72
- type: commit
83
spec:
@@ -17,6 +12,6 @@ policies:
1712
body:
1813
required: false
1914
conventional:
20-
types: ['chore', 'build', 'docs', 'ci', 'perf', 'refactor', 'style', 'test', 'release']
21-
scopes: ['.*']
15+
types: ["build", "chore", "docs", "ci", "perf", "refactor", "style", "test", "release"]
16+
scopes: [".*"]
2217
descriptionLength: 92

.github/workflows/openssf-scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ jobs:
2121
contents: read
2222
security-events: write
2323
id-token: write
24-
uses: diggsweden/reusable-ci/.github/workflows/security-openssf-scorecard.yml@02decc6526ebd8994da90b923974e59e1cc9c22e # v2.3.8
24+
uses: diggsweden/reusable-ci/.github/workflows/security-openssf-scorecard.yml@e29145e720cef0b86ef147c72c2d001b5ac6c8b9 # v2.4.2
2525
with:
2626
publish-results: true

.github/workflows/pullrequest-workflow.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,19 @@ permissions:
1818

1919
jobs:
2020
pr-checks:
21-
uses: diggsweden/reusable-ci/.github/workflows/pullrequest-orchestrator.yml@02decc6526ebd8994da90b923974e59e1cc9c22e # v2.3.8
21+
uses: diggsweden/reusable-ci/.github/workflows/pullrequest-orchestrator.yml@e29145e720cef0b86ef147c72c2d001b5ac6c8b9 # v2.4.2
2222
secrets: inherit # Pass org-level secrets (NPM token if private packages)
2323
permissions:
2424
contents: read # Clone repository and read source code
2525
packages: read # Access private NPM packages from GitHub registry
2626
security-events: write # Upload ESLint/security findings to GitHub Security tab
2727
with:
2828
project-type: npm
29-
# MegaLinter is disabled for this project
30-
linters.megalint: false # Skip MegaLinter
29+
# Use just+mise linting (replaces megalint, commitlint, licenselint)
30+
linters.justmiselint: true
31+
linters.megalint: false
32+
linters.commitlint: false
33+
linters.licenselint: false
3134
linters.publiccodelint: true
3235

3336
test:

.github/workflows/release-dev-workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
permissions:
3232
contents: read
3333
packages: write
34-
uses: diggsweden/reusable-ci/.github/workflows/release-dev-orchestrator.yml@02decc6526ebd8994da90b923974e59e1cc9c22e # v2.3.8
34+
uses: diggsweden/reusable-ci/.github/workflows/release-dev-orchestrator.yml@e29145e720cef0b86ef147c72c2d001b5ac6c8b9 # v2.4.2
3535
with:
3636
project-type: npm
3737
package-scope: '@diggsweden'

.github/workflows/release-workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ permissions:
2424

2525
jobs:
2626
release:
27-
uses: diggsweden/reusable-ci/.github/workflows/release-orchestrator.yml@02decc6526ebd8994da90b923974e59e1cc9c22e # v2.3.8
27+
uses: diggsweden/reusable-ci/.github/workflows/release-orchestrator.yml@e29145e720cef0b86ef147c72c2d001b5ac6c8b9 # v2.4.2
2828
permissions:
2929
contents: write # Create GitHub releases, push changelog commits
3030
packages: write # Publish to GitHub Packages

REUSE.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ version = 1
66

77
# configurations
88
[[annotations]]
9-
path = ["CHANGELOG.md","tsconfig.json","package.json","package-lock.json"]
9+
path = ["CHANGELOG.md","tsconfig.json","package.json","package-lock.json",".conform.yaml"]
1010
precedence = "aggregate"
1111
SPDX-FileCopyrightText = "2025 Digg - Agency for Digital Government"
1212
SPDX-License-Identifier = "CC0-1.0"

development/DEVELOPMENT.md

Lines changed: 131 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,32 @@
33
Denna guide beskriver de viktigaste grunderna för utveckling i detta projekt.
44

55
## Innehållsförteckning
6-
* [Installation](#installation-och-konfiguration)
7-
* [Förutsättningar](#förutsättningar)
8-
* [Utvecklingsflöde](#utvecklingsflöde)
9-
* [Utveckla](#utveckla)
10-
* [Pull Request-flöde](#pull-request-flöde)
11-
* [Releaseprocess](#releaseprocess)
12-
* [Testa och verifiera](#testa-och-verifiera)
13-
* [Eventuella hinder](#eventuella-hinder)
14-
15-
## Installation
6+
7+
- [Installation och konfiguration](#installation-och-konfiguration)
8+
- [Förutsättningar](#förutsättningar)
9+
- [Installation](#installation)
10+
- [Utvecklingsflöde](#utvecklingsflöde)
11+
- [Utveckla](#utveckla)
12+
- [Pull Request-flöde](#pull-request-flöde)
13+
- [Kvalitetskontroller med just](#kvalitetskontroller-med-just)
14+
- [Releaseprocess](#releaseprocess)
15+
- [Testa och verifiera](#testa-och-verifiera)
16+
- [Eventuella hinder](#eventuella-hinder)
17+
18+
## Installation och konfiguration
19+
20+
### Förutsättningar
21+
22+
Du bör ha följande installerat för att arbeta i projektet:
23+
24+
- Nodejs
25+
- Podman och/eller Docker
26+
- Git
27+
- [mise](https://mise.jdx.dev/) - Verktygsversionshanterare (för kvalitetskontroller)
28+
- [just](https://github.com/casey/just) - Kommandokörare (installeras via mise)
29+
30+
### Installation
31+
1632
1. Klona ned projektet, gärna från senaste release tag.
1733
2. Installera alla beroenden och provkör:
1834

@@ -22,111 +38,158 @@ npm start -- --help
2238
npm start -- -f openapi.yaml
2339
```
2440

25-
## Förutsättningar
26-
Du bör ha följande installerat för att arbeta i projektet:
27-
- Nodejs
28-
- Podman och/eller Docker
29-
- Git
30-
3141
## Utvecklingsflöde
3242

3343
### Utveckla
34-
- Skapa en ämnesgren från projektets huvudgren, oftast baserat på och namngett efter ett ärende i backlogen.
35-
- feature/ny-feature
36-
- fix/ny-fix
37-
- Pusha dina ändringar till ämnesgrenen.
38-
- Öppna en ny pull request till huvudprojektet när du känner dig klar.
3944

40-
Följ allmänna regler kring [CONTRIBUTING.md](../CONTRIBUTING.md)
45+
- Skapa en ämnesgren från projektets huvudgren, oftast baserat på och namngett efter ett ärende i backlogen.
46+
- feature/ny-feature
47+
- fix/ny-fix
48+
- Pusha dina ändringar till ämnesgrenen.
49+
- Öppna en ny pull request till huvudprojektet när du känner dig klar.
50+
51+
Följ allmänna regler kring [CONTRIBUTING.md](../CONTRIBUTING.md)
4152

4253
### Pull Request-flöde
4354

44-
När du skickar in en PR kommer CI automatiskt att köra flera kontroller.<br/>
55+
När du skickar in en PR kommer CI automatiskt att köra flera kontroller.
4556
För att undvika överraskningar bör du köra dessa kontroller lokalt först.
4657

47-
#### Köra kvalitetskontroller lokalt
58+
```shell
59+
# Installera lintverktyg (första gången)
60+
mise install
61+
just setup-devtools
4862

49-
1. Kör kvalitetskontrollscriptet:
50-
```shell
51-
./development/code_quality.sh
52-
```
53-
2. Åtgärda eventuella problem
54-
3. Uppdatera din PR med fixarna
55-
4. Verifiera att CI passerar i den uppdaterade PR:en
63+
# Kör alla kontroller
64+
just verify
65+
66+
# Eller kör endast linting
67+
just lint-all
68+
69+
# Autofixa där det är möjligt
70+
just lint-fix
71+
```
5672

5773
#### Detaljer för kvalitetskontroller
5874

59-
- **Lintning med megalinter**: BASH, Markdown, YAML, Typescript, GitHub Actions, säkerhetsskanning
60-
- **Licensöverensstämmelse**: REUSE-verktyget säkerställer korrekt copyright-information
75+
- **Linting**: Shell, YAML, Markdown, TypeScript, GitHub Actions
76+
- **Säkerhet**: Hemlighetsskanning med gitleaks
77+
- **Licensefterlevnad**: REUSE-verktyget säkerställer korrekt copyright-information
6178
- **Commit-struktur**: Conform kontrollerar commit-meddelanden för changelog-generering
62-
- **Beroendeanalys**: Skannar efter sårbarheter, utdaterade paket och licensproblem
63-
- **OpenSSF Scorecard**: Validerar säkerhetsbästa praxis
6479

6580
#### Hantering av misslyckade kontroller
6681

6782
Om några kontroller misslyckas i CI-pipelinen:
6883

6984
1. Granska CI-fel-loggarna
70-
2. Kör kontrollerna lokalt för att återskapa problemen
85+
2. Kör `just verify` lokalt för att återskapa problemen
7186
3. Gör nödvändiga fixar i din lokala miljö
7287
4. Uppdatera din Pull Request
7388
5. Verifiera att alla kontroller passerar i den uppdaterade PR:en
7489

90+
### Kvalitetskontroller med just
91+
92+
Kör `just` för att se alla tillgängliga kommandon. Huvudkommandon:
93+
94+
| Kommando | Beskrivning |
95+
|----------|-------------|
96+
| `just verify` | Kör alla kontroller (lint + test) |
97+
| `just lint-all` | Kör alla linters |
98+
| `just lint-fix` | Autofixa lintproblem |
99+
| `just test` | Kör tester |
100+
| `just build` | Bygg projektet |
101+
| `just clean` | Rensa byggartefakter |
102+
103+
#### Lintkommandon
104+
105+
| Kommando | Verktyg | Beskrivning |
106+
|----------|---------|-------------|
107+
| `just lint-commits` | conform | Validera commit-meddelanden |
108+
| `just lint-secrets` | gitleaks | Skanna efter hemligheter |
109+
| `just lint-yaml` | yamlfmt | Linta YAML-filer |
110+
| `just lint-markdown` | rumdl | Linta markdown-filer |
111+
| `just lint-shell` | shellcheck | Linta shell-skript |
112+
| `just lint-shell-fmt` | shfmt | Kontrollera shell-formatering |
113+
| `just lint-actions` | actionlint | Linta GitHub Actions |
114+
| `just lint-license` | reuse | Kontrollera licensefterlevnad |
115+
116+
#### Fixkommandon
117+
118+
| Kommando | Beskrivning |
119+
|----------|-------------|
120+
| `just lint-yaml-fix` | Fixa YAML-formatering |
121+
| `just lint-markdown-fix` | Fixa markdown-formatering |
122+
| `just lint-shell-fmt-fix` | Fixa shell-formatering |
123+
75124
## Releaseprocess
76-
Releaseprocessen hanteras automatiskt av maintainer-teamet via intern dokumentation.
125+
126+
Releaseprocessen hanteras automatiskt av maintainer-teamet via intern dokumentation.
77127

78128
## Testa och verifiera
129+
79130
Efter varje release, pre- eller stabil, bör funktionaliteten testas och verifieras.
80131

81-
### Testa mot publicerat npm paket
82-
Kör följande kommando mot den version av verktyget som ska testas:
132+
### Testa mot publicerat npm-paket
133+
134+
Kör följande kommando mot den version av verktyget som ska testas:
135+
83136
```bash
84137
npx @diggsweden/rest-api-profil-lint-processor@<version> -f openapi.yaml -l raplp.log --dex avstamning.xlsx
85-
```
138+
```
86139

87-
---
140+
### Test av image med podman/docker
88141

89-
#### Test av image med podman/docker
90142
Kör följande kommandon med den version av verktyget som ska testas:
143+
91144
```bash
92145
podman run -it -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version> -f /data/openapi.yaml -l /data/raplp.log --dex /data/avstamning.xlsx
93146
```
94147

95-
> För alla kommandon bör ***podman*** kunna ersättas med ***docker*** om så önskas.
148+
> För alla kommandon bör **podman** kunna ersättas med **docker** om så önskas.
96149
97150
I en terminal kör:
98-
```bash
99-
podman run --rm -it -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version> -f /data/openapi.yaml
100-
```
101-
* Där data motsvarar den katalog i containern som du vill att nuvarande katalog `\$(pwd)` mountas in i, containern får tillgång till dina filer i `\$(pwd)`.
102-
* Där `openapi.yaml` motsvarar den filen som du vill applicera valideringen på.
103-
* Där \<VERSION> motsvarar den version av rest-api-profilen som du vill nyttja.
151+
152+
```bash
153+
podman run --rm -it -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version> -f /data/openapi.yaml
154+
```
155+
156+
- Där data motsvarar den katalog i containern som du vill att nuvarande katalog `$(pwd)` mountas in i, containern får tillgång till dina filer i `$(pwd)`.
157+
- Där `openapi.yaml` motsvarar den filen som du vill applicera valideringen på.
158+
- Där `<version>` motsvarar den version av rest-api-profilen som du vill nyttja.
104159

105160
> Notera: Sökvägar kan hanteras olika beroende på miljö:
106-
> - Podman (Linux/macOS/WSL): -v $(pwd):/app/example
107-
> - Docker (PowerShell): -v "${PWD}:/app/example"
108-
> - Docker (CMD): -v %cd%:/app/example
161+
>
162+
> - Podman (Linux/macOS/WSL): `-v $(pwd):/app/example`
163+
> - Docker (PowerShell): `-v "${PWD}:/app/example"`
164+
> - Docker (CMD): `-v %cd%:/app/example`
109165
110-
Exempel
111-
```bash
112-
podman run --rm -it -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version> -f /data/openapi.yaml -l /data/raplp.log --dex /data/avstamning.xlsx
113-
```
166+
Exempel:
114167

115-
Vid eventuella fel och du inte hittar rap-lp-error.log kan du behöva köra kommandot via containern enligt den alternativa instruktionen nedan.<br>
168+
```bash
169+
podman run --rm -it -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version> -f /data/openapi.yaml -l /data/raplp.log --dex /data/avstamning.xlsx
170+
```
171+
172+
Vid eventuella fel och du inte hittar rap-lp-error.log kan du behöva köra kommandot via containern enligt den alternativa instruktionen nedan.
116173
Se till att containern har rättigheter att skriva till den katalog som du mountar, se [Skrivåtkomst till mount från container](#skrivåtkomst-till-mount-från-container).
117174

118175
#### Alternativ att köra ifrån containern
176+
119177
1. Starta en podman container:
120-
```bash
121-
podman run --rm -it --entrypoint /bin/sh -v $(pwd):/app/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version>
122-
```
178+
179+
```bash
180+
podman run --rm -it --entrypoint /bin/sh -v $(pwd):/app/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version>
181+
```
182+
123183
2. Kör din validering ifrån containern:
124-
```bash
125-
npm start -- -f /data/openapi.yaml
126-
```
184+
185+
```bash
186+
npm start -- -f /data/openapi.yaml
187+
```
188+
127189
3. Lägg på önskade flaggor enligt tidigare exempel.
128190

129191
Exempel:
192+
130193
```bash
131194
podman run --rm -it --entrypoint /bin/sh -v $(pwd):/app/data ghcr.io/diggsweden/rest-api-profil-lint-processor:<version>
132195

@@ -135,11 +198,12 @@ podman run --rm -it --entrypoint /bin/sh -v $(pwd):/app/data ghcr.io/diggsweden/
135198

136199
## Eventuella hinder
137200

138-
#### Access till registry
201+
### Access till registry
139202

140203
Du kan behöva ett Personal Access Token (PAT) för din användare i github för att kunna hämta images från Github Container Registry (GHCR) och Github Packages, se [FAQ i readme](../README.md/#hur-skapar-jag-ett-github-personal-access-token-pat).
141204

142-
#### Skrivåtkomst till mount från container
143-
Vid körningar med podman och docker i kombination med flaggor som sparar information till filer kan det uppstå problem kring skrivrättigheter som gör att filer inte dyker upp som önskat. Filerna kan finnas i containern men dyker inte i den mountade katalogen som specificerats. Se [FAQ i readme](../README.md/#skrivåtkomst-till-mount-från-container).
144-
205+
### Skrivåtkomst till mount från container
145206

207+
Vid körningar med podman och docker i kombination med flaggor som sparar information till filer kan det uppstå problem kring skrivrättigheter som gör att filer inte dyker upp som önskat.
208+
Filerna kan finnas i containern men dyker inte i den mountade katalogen som specificerats.
209+
Se [FAQ i readme](../README.md/#skrivåtkomst-till-mount-från-container).

0 commit comments

Comments
 (0)