From a8788d1aa0c291793f0ce5d90b29f7d1db838870 Mon Sep 17 00:00:00 2001 From: Pierre Jeanjacquot <26487010+PierreJeanjacquot@users.noreply.github.com> Date: Tue, 18 Nov 2025 12:08:06 +0100 Subject: [PATCH] chore: auto update version in openapi --- api/Dockerfile | 4 +++- api/openapi.yaml | 2 +- api/package.json | 2 +- api/updateVersionOpenApi.cjs | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 api/updateVersionOpenApi.cjs diff --git a/api/Dockerfile b/api/Dockerfile index fe6450c..dc69c86 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -8,9 +8,11 @@ RUN apk update && apk upgrade COPY package.json . COPY package-lock.json . COPY generateEsModulesFromJson.cjs . +COPY updateVersionOpenApi.cjs . +COPY openapi.yaml . + RUN npm ci --omit=dev COPY src ./src -COPY openapi.yaml . CMD ["npm", "start"] diff --git a/api/openapi.yaml b/api/openapi.yaml index 8e3b822..7586d1f 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -3,7 +3,7 @@ info: title: iExec market API description: >- iExec market API OpenAPI specification - version: 6.4.1 + version: 7.1.1 license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/api/package.json b/api/package.json index 29249ea..9f90581 100644 --- a/api/package.json +++ b/api/package.json @@ -9,7 +9,7 @@ "npm": ">=10.0.0" }, "scripts": { - "codegen": "node generateEsModulesFromJson.cjs", + "codegen": "node generateEsModulesFromJson.cjs && node updateVersionOpenApi.cjs", "postinstall": "npm run codegen", "format": "prettier --write .", "check-format": "prettier --check .", diff --git a/api/updateVersionOpenApi.cjs b/api/updateVersionOpenApi.cjs new file mode 100644 index 0000000..241fc0b --- /dev/null +++ b/api/updateVersionOpenApi.cjs @@ -0,0 +1,35 @@ +const path = require('path'); +const { writeFile, readFile } = require('fs/promises'); + +const OPEN_API_SPECIFICATION_FILE = 'openapi.yaml'; + +async function updateVersionOpenApi() { + const packagePath = path.join(__dirname, 'package.json'); + const packageContent = await readFile(packagePath, 'utf8'); + const packageJson = JSON.parse(packageContent); + const packageVersion = packageJson.version; + + const openApiPath = path.join(__dirname, OPEN_API_SPECIFICATION_FILE); + const openApiContent = await readFile(openApiPath, 'utf8'); + const openApiVersionPattern = /version: \d+\.\d+\.\d+(-\S+)?/; + + const [match] = openApiContent.match(openApiVersionPattern); + + const currentVersion = match.split('version: ')[1]; + if (currentVersion === packageVersion) { + return; + } + const updatedContent = openApiContent.replace( + openApiVersionPattern, + `version: ${packageVersion}`, + ); + await writeFile(openApiPath, updatedContent, 'utf8'); + console.log( + `version updated from ${currentVersion} to ${packageVersion} in ${OPEN_API_SPECIFICATION_FILE}`, + ); +} + +updateVersionOpenApi().catch((error) => { + console.error('Error updating OpenAPI version:', error); + process.exit(1); +});