Skip to content

Commit 876267d

Browse files
committed
wip: add k-meteofrance to this monorepo
1 parent 66aa6aa commit 876267d

24 files changed

Lines changed: 1377 additions & 5 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ coverage/
5050
.nyc_output/
5151
jest-*.json
5252
packages/krawler/test/output/
53+
packages/krawler-meteofrance/output
5354
examples/output/
5455

5556
# Husky hooks

docs/.vitepress/packages.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[
22
"krawler",
33
"krawler-openradiation",
4-
"krawler-vigicrues"
4+
"krawler-vigicrues",
5+
"krawler-meteofrance"
56
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
title: krawler-meteofrance
3+
description: A Krawler job designed to scrape data from the Météo-France public API
4+
---
5+
6+
# krawler-meteofrance
7+
8+
_A Krawler job designed to scrape data from the Météo-France public API_
9+
10+
## Overview
11+
12+
_TODO_
13+
14+
## Installation
15+
16+
Install with your preferred package manager:
17+
18+
::: code-group
19+
20+
```bash [pnpm]
21+
pnpm add @kalisio/krawler-meteofrance
22+
```
23+
24+
```bash [npm]
25+
npm install @kalisio/krawler-meteofrance
26+
```
27+
28+
```bash [yarn]
29+
yarn add @kalisio/krawler-meteofrance
30+
```
31+
32+
:::
33+

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"scripts": {
77
"build": "pnpm -r build",
88
"build:krawler": "pnpm --filter @kalisio/krawler build",
9+
"build:krawler-meteofrance": "pnpm --filter @kalisio/krawler-meteofrance build",
910
"build:krawler-openradiation": "pnpm --filter @kalisio/krawler-openradiation build",
1011
"build:krawler-vigicrues": "pnpm --filter @kalisio/krawler-vigicrues build",
1112
"changeset": "changeset",
@@ -18,6 +19,7 @@
1819
"inspect": "pnpm knip",
1920
"lint": "pnpm -r lint",
2021
"lint:krawler": "pnpm --filter @kalisio/krawler lint",
22+
"lint:krawler-meteofrance": "pnpm --filter @kalisio/krawler-meteofrance lint",
2123
"lint:krawler-openradiation": "pnpm --filter @kalisio/krawler-openradiation lint",
2224
"lint:krawler-vigicrues": "pnpm --filter @kalisio/krawler-vigicrues lint",
2325
"lint:unused": "pnpm knip",
@@ -26,6 +28,7 @@
2628
"pretest": "mkdir -p coverage",
2729
"test": "pnpm -r test",
2830
"test:krawler": "pnpm --filter @kalisio/krawler test",
31+
"test:krawler-meteofrance": "pnpm --filter @kalisio/krawler-meteofrance test",
2932
"test:krawler-openradiation": "pnpm --filter @kalisio/krawler-openradiation test",
3033
"test:krawler-vigicrues": "pnpm --filter @kalisio/krawler-vigicrues test"
3134
},
@@ -46,8 +49,7 @@
4649
"url": "https://github.com/kalisio/krawler-ekosystem/issues"
4750
},
4851
"homepage": "git://github.com/kalisio/krawler-ekosystem#readme",
49-
"dependencies": {
50-
},
52+
"dependencies": {},
5153
"devDependencies": {
5254
"@changesets/cli": "catalog:",
5355
"@vitest/coverage-v8": "catalog:",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026-present Kalisio
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# krawler-meteofrance
2+
3+
_A Krawler job designed to scrape data from the Météo-France public API_
4+
5+
---
6+
7+
## Documentation
8+
9+
Detailed documentation is available at the following [link](https://kalisio.github.io/krawler-ekosystem/packages/krawler-meteofrance).
10+
11+
## License
12+
13+
Licensed under the [MIT license](LICENSE).
14+
15+
Copyright (c) 2026 [Kalisio](https://kalisio.com)
16+
17+
[![Kalisio](https://kalisio.github.io/kalisioscope/kalisio/kalisio-logo-light-256x96.png)](https://kalisio.com)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
ARG DEBIAN_VERSION=bookworm
2+
ARG NODE_VERSION=20
3+
4+
#
5+
# Builder stage: install workspace deps, build @kalisio/krawler, install the job
6+
#
7+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION} AS builder
8+
9+
WORKDIR /app
10+
11+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
12+
13+
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json vite.base-config.js ./
14+
COPY packages/krawler/package.json ./packages/krawler/
15+
COPY packages/krawler-meteofrance/package.json ./packages/krawler-meteofrance/
16+
17+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler... --filter @kalisio/krawler-meteofrance...
18+
19+
COPY packages/krawler/vite.config.js ./packages/krawler/
20+
COPY packages/krawler/src ./packages/krawler/src/
21+
COPY packages/krawler/healthcheck.js ./packages/krawler/
22+
23+
RUN pnpm --filter @kalisio/krawler build
24+
25+
COPY packages/krawler-meteofrance/job.arome-arpege.js ./packages/krawler-meteofrance/
26+
COPY packages/krawler-meteofrance/jobfile.arome-france.js ./packages/krawler-meteofrance/
27+
28+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler --filter @kalisio/krawler-meteofrance --prod
29+
30+
#
31+
# Runtime stage: slim image with prod deps, krawler bin, and the job
32+
#
33+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION}-slim
34+
LABEL maintainer="Kalisio <contact@kalisio.xyz>"
35+
36+
WORKDIR /app
37+
38+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
39+
40+
ENV CRON="0 * * * * *"
41+
ENV NODE_ENV=production
42+
43+
COPY --from=builder --chown=node:node /app/pnpm-workspace.yaml /app/pnpm-lock.yaml /app/package.json ./
44+
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
45+
COPY --from=builder --chown=node:node /app/packages/krawler ./packages/krawler
46+
COPY --from=builder --chown=node:node /app/packages/krawler-meteofrance ./packages/krawler-meteofrance
47+
48+
RUN ln -s /app/node_modules/.bin/krawler /usr/local/bin/krawler
49+
50+
RUN mkdir -p /app/packages/krawler-meteofrance/node_modules/@kalisio \
51+
&& ln -s /app/packages/krawler /app/packages/krawler-meteofrance/node_modules/@kalisio/krawler \
52+
&& chown -R node:node /app/packages/krawler-meteofrance/node_modules
53+
54+
USER node
55+
56+
WORKDIR /app/packages/krawler-meteofrance
57+
58+
HEALTHCHECK --interval=1m --timeout=10s --start-period=1m CMD node /app/packages/krawler/healthcheck.js
59+
60+
CMD ["sh", "-c", "krawler --cron \"$CRON\" --run jobfile.arome-france.js"]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
ARG DEBIAN_VERSION=bookworm
2+
ARG NODE_VERSION=20
3+
4+
#
5+
# Builder stage: install workspace deps, build @kalisio/krawler, install the job
6+
#
7+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION} AS builder
8+
9+
WORKDIR /app
10+
11+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
12+
13+
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json vite.base-config.js ./
14+
COPY packages/krawler/package.json ./packages/krawler/
15+
COPY packages/krawler-meteofrance/package.json ./packages/krawler-meteofrance/
16+
17+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler... --filter @kalisio/krawler-meteofrance...
18+
19+
COPY packages/krawler/vite.config.js ./packages/krawler/
20+
COPY packages/krawler/src ./packages/krawler/src/
21+
COPY packages/krawler/healthcheck.js ./packages/krawler/
22+
23+
RUN pnpm --filter @kalisio/krawler build
24+
25+
COPY packages/krawler-meteofrance/job.arome-arpege.js ./packages/krawler-meteofrance/
26+
COPY packages/krawler-meteofrance/jobfile.arome-france-high.js ./packages/krawler-meteofrance/
27+
28+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler --filter @kalisio/krawler-meteofrance --prod
29+
30+
#
31+
# Runtime stage: slim image with prod deps, krawler bin, and the job
32+
#
33+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION}-slim
34+
LABEL maintainer="Kalisio <contact@kalisio.xyz>"
35+
36+
WORKDIR /app
37+
38+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
39+
40+
ENV CRON="0 * * * * *"
41+
ENV NODE_ENV=production
42+
43+
COPY --from=builder --chown=node:node /app/pnpm-workspace.yaml /app/pnpm-lock.yaml /app/package.json ./
44+
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
45+
COPY --from=builder --chown=node:node /app/packages/krawler ./packages/krawler
46+
COPY --from=builder --chown=node:node /app/packages/krawler-meteofrance ./packages/krawler-meteofrance
47+
48+
RUN ln -s /app/node_modules/.bin/krawler /usr/local/bin/krawler
49+
50+
RUN mkdir -p /app/packages/krawler-meteofrance/node_modules/@kalisio \
51+
&& ln -s /app/packages/krawler /app/packages/krawler-meteofrance/node_modules/@kalisio/krawler \
52+
&& chown -R node:node /app/packages/krawler-meteofrance/node_modules
53+
54+
USER node
55+
56+
WORKDIR /app/packages/krawler-meteofrance
57+
58+
HEALTHCHECK --interval=1m --timeout=10s --start-period=1m CMD node /app/packages/krawler/healthcheck.js
59+
60+
CMD ["sh", "-c", "krawler --cron \"$CRON\" --run jobfile.arome-france-high.js"]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
ARG DEBIAN_VERSION=bookworm
2+
ARG NODE_VERSION=20
3+
4+
#
5+
# Builder stage: install workspace deps, build @kalisio/krawler, install the job
6+
#
7+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION} AS builder
8+
9+
WORKDIR /app
10+
11+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
12+
13+
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json vite.base-config.js ./
14+
COPY packages/krawler/package.json ./packages/krawler/
15+
COPY packages/krawler-meteofrance/package.json ./packages/krawler-meteofrance/
16+
17+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler... --filter @kalisio/krawler-meteofrance...
18+
19+
COPY packages/krawler/vite.config.js ./packages/krawler/
20+
COPY packages/krawler/src ./packages/krawler/src/
21+
COPY packages/krawler/healthcheck.js ./packages/krawler/
22+
23+
RUN pnpm --filter @kalisio/krawler build
24+
25+
COPY packages/krawler-meteofrance/job.arome-arpege.js ./packages/krawler-meteofrance/
26+
COPY packages/krawler-meteofrance/jobfile.arpege-europe.js ./packages/krawler-meteofrance/
27+
28+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler --filter @kalisio/krawler-meteofrance --prod
29+
30+
#
31+
# Runtime stage: slim image with prod deps, krawler bin, and the job
32+
#
33+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION}-slim
34+
LABEL maintainer="Kalisio <contact@kalisio.xyz>"
35+
36+
WORKDIR /app
37+
38+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
39+
40+
ENV CRON="0 * * * * *"
41+
ENV NODE_ENV=production
42+
43+
COPY --from=builder --chown=node:node /app/pnpm-workspace.yaml /app/pnpm-lock.yaml /app/package.json ./
44+
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
45+
COPY --from=builder --chown=node:node /app/packages/krawler ./packages/krawler
46+
COPY --from=builder --chown=node:node /app/packages/krawler-meteofrance ./packages/krawler-meteofrance
47+
48+
RUN ln -s /app/node_modules/.bin/krawler /usr/local/bin/krawler
49+
50+
RUN mkdir -p /app/packages/krawler-meteofrance/node_modules/@kalisio \
51+
&& ln -s /app/packages/krawler /app/packages/krawler-meteofrance/node_modules/@kalisio/krawler \
52+
&& chown -R node:node /app/packages/krawler-meteofrance/node_modules
53+
54+
USER node
55+
56+
WORKDIR /app/packages/krawler-meteofrance
57+
58+
HEALTHCHECK --interval=1m --timeout=10s --start-period=1m CMD node /app/packages/krawler/healthcheck.js
59+
60+
CMD ["sh", "-c", "krawler --cron \"$CRON\" --run jobfile.arpege-europe.js"]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
ARG DEBIAN_VERSION=bookworm
2+
ARG NODE_VERSION=20
3+
4+
#
5+
# Builder stage: install workspace deps, build @kalisio/krawler, install the job
6+
#
7+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION} AS builder
8+
9+
WORKDIR /app
10+
11+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
12+
13+
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json vite.base-config.js ./
14+
COPY packages/krawler/package.json ./packages/krawler/
15+
COPY packages/krawler-meteofrance/package.json ./packages/krawler-meteofrance/
16+
17+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler... --filter @kalisio/krawler-meteofrance...
18+
19+
COPY packages/krawler/vite.config.js ./packages/krawler/
20+
COPY packages/krawler/src ./packages/krawler/src/
21+
COPY packages/krawler/healthcheck.js ./packages/krawler/
22+
23+
RUN pnpm --filter @kalisio/krawler build
24+
25+
COPY packages/krawler-meteofrance/job.arome-arpege.js ./packages/krawler-meteofrance/
26+
COPY packages/krawler-meteofrance/jobfile.arpege-world.js ./packages/krawler-meteofrance/
27+
28+
RUN pnpm install --frozen-lockfile --filter @kalisio/krawler --filter @kalisio/krawler-meteofrance --prod
29+
30+
#
31+
# Runtime stage: slim image with prod deps, krawler bin, and the job
32+
#
33+
FROM node:${NODE_VERSION}-${DEBIAN_VERSION}-slim
34+
LABEL maintainer="Kalisio <contact@kalisio.xyz>"
35+
36+
WORKDIR /app
37+
38+
RUN corepack enable && corepack prepare pnpm@10.1.0 --activate
39+
40+
ENV CRON="0 * * * * *"
41+
ENV NODE_ENV=production
42+
43+
COPY --from=builder --chown=node:node /app/pnpm-workspace.yaml /app/pnpm-lock.yaml /app/package.json ./
44+
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
45+
COPY --from=builder --chown=node:node /app/packages/krawler ./packages/krawler
46+
COPY --from=builder --chown=node:node /app/packages/krawler-meteofrance ./packages/krawler-meteofrance
47+
48+
RUN ln -s /app/node_modules/.bin/krawler /usr/local/bin/krawler
49+
50+
RUN mkdir -p /app/packages/krawler-meteofrance/node_modules/@kalisio \
51+
&& ln -s /app/packages/krawler /app/packages/krawler-meteofrance/node_modules/@kalisio/krawler \
52+
&& chown -R node:node /app/packages/krawler-meteofrance/node_modules
53+
54+
USER node
55+
56+
WORKDIR /app/packages/krawler-meteofrance
57+
58+
HEALTHCHECK --interval=1m --timeout=10s --start-period=1m CMD node /app/packages/krawler/healthcheck.js
59+
60+
CMD ["sh", "-c", "krawler --cron \"$CRON\" --run jobfile.arpege-world.js"]

0 commit comments

Comments
 (0)