Skip to content

Commit 825c5d6

Browse files
committed
feat(lift): exposed an initial no-op lifter through the public API
1 parent fd36c92 commit 825c5d6

File tree

8 files changed

+55
-6
lines changed

8 files changed

+55
-6
lines changed

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,21 @@ $ npm install @form8ion/commit-convention --save-prod
4141
#### Import
4242

4343
```javascript
44-
import {scaffold} from '@form8ion/commit-convention';
44+
import {packageManagers} from '@form8ion/javascript-core';
45+
import {scaffold, test, lift} from '@form8ion/commit-convention';
4546
```
4647

4748
#### Execute
4849

4950
```javascript
5051
(async () => {
51-
await scaffold({projectRoot: process.cwd(), configs: {}});
52+
const projectRoot = process.cwd();
53+
54+
await scaffold({projectRoot, configs: {}});
55+
56+
if (await test({projectRoot})) {
57+
await lift({projectRoot, packageManager: packageManagers.NPM});
58+
}
5259
})();
5360
```
5461

example.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
// #### Import
22
// remark-usage-ignore-next
33
import stubbedFs from 'mock-fs';
4-
import {scaffold} from './lib/index.cjs';
4+
import {packageManagers} from '@form8ion/javascript-core';
5+
import {scaffold, test, lift} from './lib/index.cjs';
56

67
// remark-usage-ignore-next
7-
stubbedFs();
8+
stubbedFs({'package.json': JSON.stringify({version: '0.0.0-semantically-released'})});
89

910
// #### Execute
1011

1112
(async () => {
12-
await scaffold({projectRoot: process.cwd(), configs: {}});
13+
const projectRoot = process.cwd();
14+
15+
await scaffold({projectRoot, configs: {}});
16+
17+
if (await test({projectRoot})) {
18+
await lift({projectRoot, packageManager: packageManagers.NPM});
19+
}
1320
})();

src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export {default as scaffold} from './scaffolder';
2+
export {test, lift} from './semantic-release';

src/semantic-release/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export {default as scaffold} from './scaffolder';
22
export {default as test} from './tester';
3+
export {default as lift} from './lifter';

src/semantic-release/lifter-test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {assert} from 'chai';
2+
3+
import lift from './lifter';
4+
5+
suite('semantic-release lifter', () => {
6+
test('that rsults are returned', async () => {
7+
assert.deepEqual(await lift(), {});
8+
});
9+
});

src/semantic-release/lifter.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default function () {
2+
return {};
3+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Feature: Lift
2+
3+
Scenario: legacy semantic-release on GitHub Actions
4+
When the project is lifted

test/integration/features/step_definitions/common-steps.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import {resolve} from 'path';
2+
23
import {After, When} from '@cucumber/cucumber';
34
import stubbedFs from 'mock-fs';
5+
import any from '@travi/any';
46

57
const stubbedNodeModules = stubbedFs.load(resolve(__dirname, '..', '..', '..', '..', 'node_modules'));
8+
const projectRoot = process.cwd();
69

710
After(function () {
811
stubbedFs.restore();
@@ -16,5 +19,19 @@ When('the project is scaffolded', async function () {
1619
node_modules: stubbedNodeModules
1720
});
1821

19-
await scaffold({projectRoot: process.cwd(), configs: {}});
22+
await scaffold({projectRoot, configs: {}});
23+
});
24+
25+
When('the project is lifted', async function () {
26+
// eslint-disable-next-line import/no-extraneous-dependencies,import/no-unresolved
27+
const {test, lift} = require('@form8ion/commit-convention');
28+
29+
stubbedFs({
30+
node_modules: stubbedNodeModules,
31+
'package.json': JSON.stringify({...any.simpleObject()})
32+
});
33+
34+
if (await test({projectRoot})) {
35+
await lift({projectRoot});
36+
}
2037
});

0 commit comments

Comments
 (0)