Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

Commit

Permalink
use new versioning script instead of lerna
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasAribart committed Jul 29, 2022
1 parent 59338a4 commit 128b717
Show file tree
Hide file tree
Showing 7 changed files with 360 additions and 3,045 deletions.
58 changes: 0 additions & 58 deletions .github/workflows/realease-to-npm.yml

This file was deleted.

44 changes: 44 additions & 0 deletions .github/workflows/release-to-npm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: 🚀 Release to NPM

on:
release:
types: [published]
jobs:
build:
name: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
- name: Install & cache node dependencies
uses: ./.github/actions/install-node-deps
- name: Build packages
run: yarn package
- name: Set packages versions
run: yarn set-packages-versions $RELEASE_VERSION
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/core/package.json
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/dynamodb-event-storage-adapter/package.json
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/inmemory-event-storage-adapter/package.json
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/json-schema-event/package.json
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/zod-event/package.json
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/test-tools/package.json
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ coverage
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# If people use virtualenvs for python scripts
.venv
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
"package": "nx run-many --target=package --all --parallel=4",
"postinstall": "husky install && syncpack format",
"resolve-audit": "resolve-audit --yarn",
"set-packages-versions": "yarn ts-node scripts/setPackagesVersions",
"test": "nx run-many --target=test --all --parallel=4",
"test-affected": "nx affected --target=test",
"test-circular": "yarn depcruise --validate dependency-cruiser.js .",
Expand Down Expand Up @@ -59,6 +60,7 @@
"prettier": "^2.6.2",
"syncpack": "^7.0.0",
"ts-jest": "^28.0.2",
"ts-node": "^10.9.1",
"typescript": "^4.6.3"
},
"engines": {
Expand Down
3 changes: 3 additions & 0 deletions packages/dynamodb-event-storage-adapter/src/dynamoDb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import type { AttributeValue, DynamoDBClient } from '@aws-sdk/client-dynamodb';
import { Marshaller } from '@aws/dynamodb-auto-marshaller';
import get from 'lodash/get';

/**
* @debt decoupling "TODO: Only import types here, EventAlreadyExistsError is problematic"
*/
import {
EventAlreadyExistsError,
EventDetail,
Expand Down
50 changes: 50 additions & 0 deletions scripts/setPackagesVersions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { readdirSync, readFileSync, writeFileSync } from 'fs';
import { join } from 'path';

const newVersion = process.argv[2] as string | undefined;

if (newVersion === undefined) {
throw new Error('Invalid version');
}

const semanticVersioningRegex =
/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;

const VERSION_MAJOR = (newVersion.match(semanticVersioningRegex) ?? [])[1];

type PackageJson = {
version?: string;
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
};

const packagesPath = join(__dirname, '..', 'packages');
const packagesNames = readdirSync(join(__dirname, '..', 'packages'));

packagesNames.forEach(packageName => {
const packageJsonPath = join(packagesPath, packageName, 'package.json');

const packageJson = JSON.parse(
readFileSync(packageJsonPath).toString(),
) as PackageJson;

packageJson.version = newVersion;

Object.keys(packageJson.dependencies ?? {}).forEach(dependencyName => {
if (dependencyName.startsWith('@castore/')) {
(packageJson.dependencies as Record<string, string>)[dependencyName] =
newVersion;
}
});

Object.keys(packageJson.peerDependencies ?? {}).forEach(dependencyName => {
if (dependencyName.startsWith('@castore/')) {
(packageJson.peerDependencies as Record<string, string>)[
dependencyName
] = `^${VERSION_MAJOR}.0.0`;
}
});

writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
});
Loading

0 comments on commit 128b717

Please sign in to comment.