Skip to content

Commit b0c80ed

Browse files
committed
1: TKLEING - Attempt to get npm version, npm pack, and git commit working
1 parent e1cf34d commit b0c80ed

File tree

8 files changed

+104
-104
lines changed

8 files changed

+104
-104
lines changed

.travis.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
language: node_js
22
node_js:
3-
- node
3+
- node
44
before_install:
5-
- curl -o- -L https://yarnpkg.com/install.sh | bash
6-
- export PATH="$HOME/.yarn/bin:$PATH"
5+
- curl -o- -L https://yarnpkg.com/install.sh | bash
6+
- export PATH="$HOME/.yarn/bin:$PATH"
77
cache: yarn
88
after_script: cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
9-
before_deploy: npm run bump
9+
after_success:
10+
- ".travis/push.sh"
1011
deploy:
12+
skip_cleanup: true
1113
provider: npm
1214
1315
tag: next
1416
api_key:
1517
secure: gGKQxRjWjj+iYvdER10eAnG1RA6A9oUC8NsIlaaRwiA073XkpwYu/jqvgMctAv7m8LKTes/TLRUGVNH5hJ8eR4HoYnTPzaJiem9+7VRSLKka8JA2iY/t8pNLXTzRBOhB8L+Gkcg6IRdRTizDSNKXNvDKYomI/FJ+R9647X2pRLUw9leIoQ+UsDNwS7Lxegj31pUDGo5r6Ku3moHPoLTCedH7XBdvrD6XPH0l/26zRTsQVsHURqSD2kkGf55hbNX6ZRV/AgMR/AbsIwnXP6LyctzO2nS77deBvuexoDfnQXKsSmpiUkvw1gJFUVQM+e8vaJZXeN+oDmG5sEaGEGIpG4gpBIHIbA82ZyYL6UUU4kVcGAN+MqpjcwZAQvv3vopY4k8A0nd3BgDL5ZOvTFcJohU8TwBaXJFtxl6SxYbZ5gC2c+slFzNGPX2a5A8Kh/tyXMrSnLCMggJG2HNyFCOoBK+6AwXVb3UyqUj/G2eYBBGqTV9zBvbvFYec81z+xZwn/fHdrAhTunh3PZ8HfrZ3Ns5jDIo3uqZPrSveoxLDKLur76C7R+Nu90wM/LAST8PYzv0Xk/4DvMQKJYA9iIHoocWNaPe/XweZUn8sfMIQSJwKuewOhjEYadci3GzGnHWnizCZasfrXaEYRXPSir8PbZf3YDH4K4+/muwZdG5W+0w=
1618
on:
19+
tags: true
1720
branch: master
1821
repo: kleingtm/npm-pack-all
22+
env:
23+
global:
24+
secure: NElq7/NR9Sb9k3F4rfRwvAgLNETB1XMyEZNLV/bWll8piVmBs58DvVV9m25y53LFgiu8hVSOTPJSO1iIUofcxngjkKlgSdo9LxlrANpg5qn6vHXyTxtx9jrNmdgF7HHvACfXdlMQAyktxBtuZ+h7F+fx1dnhmqUBX6MEdpnKrR6AymfzMUI9W1edDDq51nRy18G29MPR/FPhWLU4Wq2cyEX4Hh12rXfKv0D4IiGb5vq9Cu+4N8J7mOUjZoEg66MKc2wtsAbel65rwoJydAetWBcGAt30r1sK6aOh16WnvURm/dNqEtdIKJtxVmpKKXOciP2A0nJXapIQMjOSRDP/RzVchevjBkCFJnHkM6CVRwxgSytpCiHYPJ/kKhtmjoq7G5i1O+plG9BfKqZabwIDmRZs8eC7ismn87XpArGiY+qeizzT1hnkpxrRqUDmpl+KYyQufYjpGF8z8L3BzFkA7nLKpNsX3izQRRhxXLuXGVroCAjPYcHNWFtXKDZzP6pP9HeZ0emLX00CASoWvw/zq5nicvSg0CTkKEyuhUihzsJSUcPXu6setHleZiUj0rSJKULO8hW3AGD5EY4TODux1j/jFeYKMuvE1umsyGR6RiZJeKcDlazfKWEpU1zxBL/WB6F60EU7IHLRMPFKbp987Ivt/4oxkvdsMcG9USFRbY8=

.travis/push.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
3+
setup_git() {
4+
git config --global user.email "[email protected]"
5+
git config --global user.name "Tom Kleingers"
6+
}
7+
8+
npm_publish() {
9+
git checkout -b master
10+
npm version patch -m "Travis build: $TRAVIS_BUILD_NUMBER, Bumped to version %s"
11+
}
12+
13+
commit() {
14+
git remote add origin https://${GITHUB_TOKEN}@github.com/kleingtm/npm-pack-all.git > /dev/null 2>&1
15+
git push --quiet --set-upstream origin master
16+
}
17+
18+
setup_git
19+
npm_publish
20+
commit

__tests__/index.test.js

Lines changed: 41 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const map = require(`lodash/map`);
1010
const TEST_SUITE = `npm-pack-all: ${__filename}`;
1111
const TMP_DIR = path.join(process.cwd(), ".npm-pack-all-tmp");
1212

13-
beforeAll(()=> {
13+
beforeAll(() => {
1414
console.error = jest.fn();
1515
});
1616

@@ -29,7 +29,6 @@ afterAll(() => {
2929

3030
describe(TEST_SUITE, () => {
3131
test("Can run proper shell commands, npm, no flags", () => {
32-
3332
let mockArgs = ``;
3433
mockArgs = minimist(mockArgs.split(` `));
3534

@@ -38,13 +37,13 @@ describe(TEST_SUITE, () => {
3837
return jest.fn(() => mockArgs); // supply mock arguments to the script
3938
});
4039

41-
jest.mock(`fs`, ()=> {
42-
return {
43-
existsSync: jest.fn(arg => {
44-
return arg.includes(`package-lock.json`)
45-
}),
46-
writeFileSync: jest.fn()
47-
}
40+
jest.mock(`fs`, () => {
41+
return {
42+
existsSync: jest.fn(arg => {
43+
return arg.includes(`package-lock.json`);
44+
}),
45+
writeFileSync: jest.fn()
46+
};
4847
});
4948

5049
// mock shell commands
@@ -66,28 +65,26 @@ describe(TEST_SUITE, () => {
6665
// call script
6766
require(`../index`);
6867

69-
let { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
68+
const { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
7069

7170
// these commands should be run in the following order by default
7271
expect(orderedArgs).toEqual([
7372
`rm("-Rf","${TMP_DIR}")`,
7473
`mkdir("-p","${TMP_DIR}")`,
75-
`cp("-Rf","${path.join(process.cwd(), 'package.json')}","${TMP_DIR}/package.json")`,
76-
`cp("-Rf","${path.join(process.cwd(), 'package-lock.json')}","${TMP_DIR}/package-lock.json")`,
77-
`cp("-Rf","${path.join(process.cwd(), 'yarn.lock')}","${TMP_DIR}/yarn.lock")`,
74+
`cp("-Rf","${path.join(process.cwd(), "package.json")}","${TMP_DIR}/package.json")`,
75+
`cp("-Rf","${path.join(process.cwd(), "package-lock.json")}","${TMP_DIR}/package-lock.json")`,
76+
`cp("-Rf","${path.join(process.cwd(), "yarn.lock")}","${TMP_DIR}/yarn.lock")`,
7877
`exec("npm prune --production && npm install --production")`,
7978
`exec("npm -dd pack",{"silent":false,"timeout":180000})`,
80-
`mv("-f","${TMP_DIR}/package.json","${path.join(process.cwd(), 'package.json')}")`,
81-
`mv("-f","${TMP_DIR}/package-lock.json","${path.join(process.cwd(), 'package-lock.json')}")`,
82-
`mv("-f","${TMP_DIR}/yarn.lock","${path.join(process.cwd(), 'yarn.lock')}")`,
79+
`mv("-f","${TMP_DIR}/package.json","${path.join(process.cwd(), "package.json")}")`,
80+
`mv("-f","${TMP_DIR}/package-lock.json","${path.join(process.cwd(), "package-lock.json")}")`,
81+
`mv("-f","${TMP_DIR}/yarn.lock","${path.join(process.cwd(), "yarn.lock")}")`,
8382
`rm("-Rf","${TMP_DIR}")`,
8483
`exec("npm install --force")`
8584
]);
8685
});
8786

88-
8987
test("Can run proper shell commands, yarn, no flags", () => {
90-
9188
let mockArgs = ``;
9289
mockArgs = minimist(mockArgs.split(` `));
9390

@@ -96,13 +93,13 @@ describe(TEST_SUITE, () => {
9693
return jest.fn(() => mockArgs); // supply mock arguments to the script
9794
});
9895

99-
jest.mock(`fs`, ()=> {
100-
return {
101-
existsSync: jest.fn(arg => {
102-
return arg.includes(`yarn.lock`)
103-
}),
104-
writeFileSync: jest.fn()
105-
}
96+
jest.mock(`fs`, () => {
97+
return {
98+
existsSync: jest.fn(arg => {
99+
return arg.includes(`yarn.lock`);
100+
}),
101+
writeFileSync: jest.fn()
102+
};
106103
});
107104

108105
// mock shell commands
@@ -124,27 +121,26 @@ describe(TEST_SUITE, () => {
124121
// call script
125122
require(`../index`);
126123

127-
let { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
124+
const { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
128125

129126
// these commands should be run in the following order for a yarn-only config
130127
expect(orderedArgs).toEqual([
131128
`rm("-Rf","${TMP_DIR}")`,
132129
`mkdir("-p","${TMP_DIR}")`,
133-
`cp("-Rf","${path.join(process.cwd(), 'package.json')}","${TMP_DIR}/package.json")`,
134-
`cp("-Rf","${path.join(process.cwd(), 'package-lock.json')}","${TMP_DIR}/package-lock.json")`,
135-
`cp("-Rf","${path.join(process.cwd(), 'yarn.lock')}","${TMP_DIR}/yarn.lock")`,
130+
`cp("-Rf","${path.join(process.cwd(), "package.json")}","${TMP_DIR}/package.json")`,
131+
`cp("-Rf","${path.join(process.cwd(), "package-lock.json")}","${TMP_DIR}/package-lock.json")`,
132+
`cp("-Rf","${path.join(process.cwd(), "yarn.lock")}","${TMP_DIR}/yarn.lock")`,
136133
`exec("yarn install --production")`,
137134
`exec("npm -dd pack",{"silent":false,"timeout":180000})`,
138-
`mv("-f","${TMP_DIR}/package.json","${path.join(process.cwd(), 'package.json')}")`,
139-
`mv("-f","${TMP_DIR}/package-lock.json","${path.join(process.cwd(), 'package-lock.json')}")`,
140-
`mv("-f","${TMP_DIR}/yarn.lock","${path.join(process.cwd(), 'yarn.lock')}")`,
135+
`mv("-f","${TMP_DIR}/package.json","${path.join(process.cwd(), "package.json")}")`,
136+
`mv("-f","${TMP_DIR}/package-lock.json","${path.join(process.cwd(), "package-lock.json")}")`,
137+
`mv("-f","${TMP_DIR}/yarn.lock","${path.join(process.cwd(), "yarn.lock")}")`,
141138
`rm("-Rf","${TMP_DIR}")`,
142139
`exec("yarn install --force")`
143140
]);
144141
});
145142

146143
test("Does inject bundledDependencies, npm, --dev-deps", () => {
147-
148144
let mockArgs = `--dev-deps`;
149145
mockArgs = minimist(mockArgs.split(` `));
150146

@@ -153,13 +149,13 @@ describe(TEST_SUITE, () => {
153149
return jest.fn(() => mockArgs); // supply mock arguments to the script
154150
});
155151

156-
jest.mock(`fs`, ()=> {
157-
return {
158-
existsSync: jest.fn(arg => {
159-
return arg.includes(`package-lock.json`)
160-
}),
161-
writeFileSync: jest.fn()
162-
}
152+
jest.mock(`fs`, () => {
153+
return {
154+
existsSync: jest.fn(arg => {
155+
return arg.includes(`package-lock.json`);
156+
}),
157+
writeFileSync: jest.fn()
158+
};
163159
});
164160

165161
// mock shell commands
@@ -181,26 +177,21 @@ describe(TEST_SUITE, () => {
181177
// call script
182178
require(`../index`);
183179

184-
let { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
180+
const { orderedArgs } = sortModuleMockFnsByCallOrder(mockShell);
185181

186-
expect(orderedArgs).toEqual(expect.arrayContaining([
187-
`exec("npm install --force")`
188-
]));
182+
expect(orderedArgs).toEqual(expect.arrayContaining([`exec("npm install --force")`]));
189183
});
190184
});
191185

192-
193186
function sortModuleMockFnsByCallOrder(mocks) {
194-
195-
let mockFnsInOrder = [];
187+
const mockFnsInOrder = [];
196188

197189
const mockFns = pickBy(mocks, mock => {
198190
return mock._isMockFunction;
199191
});
200192

201193
// iterate each mocked fn in module
202194
keys(mockFns).forEach(fnName => {
203-
204195
// combine calls, instances, results, etc
205196
for (let i = 0; i < mockFns[fnName].mock.calls.length; i++) {
206197
mockFnsInOrder.push({
@@ -213,9 +204,9 @@ function sortModuleMockFnsByCallOrder(mocks) {
213204
}
214205
});
215206

216-
const orderedFns = sortBy(mockFnsInOrder, ['invocationCallOrder']);
207+
const orderedFns = sortBy(mockFnsInOrder, ["invocationCallOrder"]);
217208
const orderedArgs = map(orderedFns, fn => {
218-
return `${fn.fnName}(${JSON.stringify(fn.calls).replace(/[\[\]']+/g, '')})`;
209+
return `${fn.fnName}(${JSON.stringify(fn.calls).replace(/[\[\]']+/g, "")})`;
219210
});
220211

221212
return { orderedFns, orderedArgs };

index.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,24 @@ console.info(`
2121
| '--'N|| '--'P|| '--'M|| '--'-|| '--'P|| '--'A|| '--'C|| '--'K|| '--'-|| '--'A|| '--'L|| '--'L|
2222
\`------'\`------'\`------'\`------'\`------'\`------'\`------'\`------'\`------'\`------'\`------'\`------'\n`);
2323

24-
2524
// parse cli args
2625
const cliArgs = require(`minimist`)(process.argv.slice(2));
2726
if (typeof cliArgs.output !== `string` && cliArgs.output) {
2827
throw new CliError(`--output`, cliArgs.output, `The \`--output\` flag requires a string filename`);
2928
}
3029

31-
3230
const packageJson = require(path.join(process.cwd(), `package.json`));
3331

34-
3532
shell.config.fatal = true; // error out if a shell command errors out
3633
shell.config.silent = true;
3734

38-
3935
// create temp directory
4036
createTempDirectory(TMP_DIRECTORY);
4137

42-
4338
// copy existing package.json and lock files (keep linting, etc in tact)
4439
console.info(`Saving existing package.json and lock files`);
4540
copyFiles(process.cwd(), TMP_DIRECTORY, FILES_TO_BACKUP);
4641

47-
4842
// set bundledDependencies in package.json
4943
const CMDs = {
5044
prune: {
@@ -57,30 +51,23 @@ const CMDs = {
5751
}
5852
};
5953

60-
6154
setBundledDependencies(packageJson, CMDs, packageManager);
6255

63-
6456
// pack with npm
6557
console.info(`\nPacking source code${!cliArgs[`dev-deps`] ? `` : `, development`} and production dependencies...`);
6658
exec(`npm -dd pack`, { silent: false, timeout: cliArgs.timeout || 3 * 60 * 1000 }); // 3 min timeout
6759

68-
6960
// restoring package.json and lock files back to project root
7061
console.info(`Restoring original package.json and lock files`);
7162
moveFiles(TMP_DIRECTORY, process.cwd(), FILES_TO_BACKUP);
7263
shell.rm(`-Rf`, TMP_DIRECTORY);
7364

74-
7565
setArtifactName(cliArgs);
7666

77-
7867
// re-install full dependency tree
7968
console.info(`Restoring original node_modules tree:\n${CMDs.install[packageManager]}`);
8069
exec(CMDs.install[packageManager]);
8170

82-
83-
8471
function createTempDirectory(dir) {
8572
shell.rm(`-Rf`, dir);
8673
shell.mkdir("-p", dir);

jest.config.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,7 @@ module.exports = {
33
collectCoverage: true,
44
coverageDirectory: "./coverage",
55
collectCoverageFrom: ["**/*"],
6-
coveragePathIgnorePatterns: [
7-
`(.*)\.mocks\.(.*)`,
8-
`\/coverage`,
9-
`jest\.config`,
10-
`package\.json`,
11-
`\.lock`,
12-
`\-lock`,
13-
`^[.]`
14-
],
6+
coveragePathIgnorePatterns: [`(.*)\.mocks\.(.*)`, `\/coverage`, `jest\.config`, `package\.json`, `\.lock`, `\-lock`, `^[.]`],
157
coverageThreshold: {
168
global: {
179
statements: 80

mocks/shelljs.mocks.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
const defaultResult = {
2-
stderr: ``,
3-
stdout: ``,
4-
code: 0
2+
stderr: ``,
3+
stdout: ``,
4+
code: 0
55
};
66

7-
module.exports.mockShellFn = function (fnName, result = defaultResult) {
8-
return jest.fn(function () {
9-
console.info(` + shell.${fnName}(${String([...arguments])})`);
10-
return result;
11-
});
12-
};
7+
module.exports.mockShellFn = function(fnName, result = defaultResult) {
8+
return jest.fn(function() {
9+
console.info(` + shell.${fnName}(${String([...arguments])})`);
10+
return result;
11+
});
12+
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"main": "index.js",
99
"bin": "index.js",
1010
"dependencies": {
11+
"lodash": "^4.17.11",
1112
"minimist": "^1.2.0",
1213
"pkg": "^4.4.0",
1314
"shelljs": "^0.8.3"
@@ -20,7 +21,6 @@
2021
"eslint-plugin-prettier": "^3.1.0",
2122
"husky": "^2.4.1",
2223
"jest": "^24.8.0",
23-
"lodash": "^4.17.11",
2424
"prettier": "^1.18.2"
2525
},
2626
"scripts": {

0 commit comments

Comments
 (0)