diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 78f0ba9edc..380546f7c3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,6 +46,9 @@ jobs: - name: Installing... run: node common/scripts/install-run-rush.js install + - name: Setting model version from git release... + run: node common/scripts/install-run-rush.js bump-model-version + - name: Building... run: node common/scripts/install-run-rush.js rebuild -l --verbose diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json index 0161d52321..454f127d84 100644 --- a/common/config/rush/command-line.json +++ b/common/config/rush/command-line.json @@ -251,6 +251,14 @@ "description": "show model version", "safeForSimultaneousRushProcesses": true, "shellCommand": "cd ./models/all/ && npx ts-node ./src/__showversion.ts" + }, + { + "commandKind": "global", + "name": "bump-model-version", + "summary": "set model version from git + patch +1", + "description": "set current model version", + "safeForSimultaneousRushProcesses": true, + "shellCommand": "cd ./models/all/ && npx ts-node ./src/__bumpversion.ts" } ], diff --git a/dev/tool/package.json b/dev/tool/package.json index 048a3bdb78..1146e50146 100644 --- a/dev/tool/package.json +++ b/dev/tool/package.json @@ -13,6 +13,7 @@ "docker:build": "docker build -t anticrm/tool .", "docker:push": "docker push anticrm/tool", "run-local": "cross-env MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost MONGO_URL=mongodb://localhost:27017 TRANSACTOR_URL=ws:/localhost:3333 TELEGRAM_DATABASE=telegram-service ELASTIC_URL=http://localhost:9200 ts-node ./src/index.ts", + "run-local-node": "cross-env MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost MONGO_URL=mongodb://localhost:27017 TRANSACTOR_URL=ws:/localhost:3333 TELEGRAM_DATABASE=telegram-service ELASTIC_URL=http://localhost:9200 node ./bundle.js", "lint": "eslint src", "format": "prettier --write src && eslint --fix src" }, diff --git a/models/all/package.json b/models/all/package.json index 821644ab1f..e27cd04726 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -10,6 +10,7 @@ "lint:fix": "eslint --fix src", "genmodel": "ts-node src/__genmodel.ts", "version": "ts-node src/__showversion.ts", + "bumpversion": "ts-node src/__bumpversion.ts", "lint": "eslint src", "format": "prettier --write src && eslint --fix src" }, diff --git a/models/all/src/__bumpversion.ts b/models/all/src/__bumpversion.ts new file mode 100644 index 0000000000..961feb42b1 --- /dev/null +++ b/models/all/src/__bumpversion.ts @@ -0,0 +1,40 @@ +// +// Copyright © 2022 Anticrm Platform Contributors. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { exec } from 'child_process' +import { writeFileSync } from 'fs' +import currentVersion from './version.json' + +exec('git describe --tags --abbrev=0', (err, stdout, stderr) => { + if (err !== null) { + console.log('Error', err) + process.exit(1) + } + const rawVersion = stdout.trim().replace('v', '').split('.') + if (rawVersion.length === 3) { + const version = { + major: parseInt(rawVersion[0]), + minor: parseInt(rawVersion[1]), + patch: parseInt(rawVersion[2]) + 1 // Always use +1 version from released already. + } + const newVersion = JSON.stringify(version) + if (JSON.stringify(currentVersion) !== newVersion) { + console.log('Bumping version from', currentVersion, 'to', version) + writeFileSync('./src/version.json', newVersion) + } else { + console.log('same version already') + } + } +}) diff --git a/models/all/src/index.ts b/models/all/src/index.ts index 9d7d1277b6..a7df44babf 100644 --- a/models/all/src/index.ts +++ b/models/all/src/index.ts @@ -14,6 +14,8 @@ // import core, { Data, Version } from '@anticrm/core' +import jsonVersion from './version.json' + import { Builder } from '@anticrm/model' import { createModel as activityModel } from '@anticrm/model-activity' import { createModel as attachmentModel } from '@anticrm/model-attachment' @@ -38,6 +40,8 @@ import { createModel as viewModel } from '@anticrm/model-view' import { createModel as workbenchModel } from '@anticrm/model-workbench' import { createModel as notificationModel } from '@anticrm/model-notification' +export const version: Data = jsonVersion as Data + const builder = new Builder() const builders = [ @@ -70,12 +74,6 @@ for (const b of builders) { b(builder) } -export const version: Data = { - major: 0, - minor: 6, - patch: 0 -} - builder.createDoc(core.class.Version, core.space.Model, version, core.version.Model) export default builder diff --git a/models/all/src/version.json b/models/all/src/version.json new file mode 100644 index 0000000000..95b0c5c8f6 --- /dev/null +++ b/models/all/src/version.json @@ -0,0 +1 @@ +{"major":0,"minor":6,"patch":0} \ No newline at end of file diff --git a/models/all/tsconfig.json b/models/all/tsconfig.json index 6f603ffd11..019635d020 100644 --- a/models/all/tsconfig.json +++ b/models/all/tsconfig.json @@ -4,6 +4,8 @@ "compilerOptions": { "rootDir": "./src", "outDir": "./lib", - "types": ["node"] + "types": ["node"], + "esModuleInterop": true, + "resolveJsonModule": true } } \ No newline at end of file