Skip to content
This repository was archived by the owner on Jan 26, 2019. It is now read-only.

Commit 7db4c43

Browse files
committed
Use Old Test Setup
1 parent fec29ab commit 7db4c43

File tree

8 files changed

+393
-184
lines changed

8 files changed

+393
-184
lines changed

.travis.yml

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
---
2-
dist: trusty
2+
# Use Ubuntu Precise instead of new default Trusty which cause build fail
3+
# with pre installed yarn v0.17.8
4+
# https://github.com/facebookincubator/create-react-app/issues/3054
5+
# TODO: remove after Trusty environment is updated with a lastet version of yarn
6+
dist: precise
37
language: node_js
48
node_js:
9+
- 6
510
- 8
6-
- 9
711
cache:
812
directories:
913
- node_modules
@@ -12,17 +16,13 @@ cache:
1216
install: true
1317
script:
1418
- 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi'
15-
- 'if [ $TEST_SUITE = "installs" ]; then tasks/e2e-installs.sh; fi'
16-
- 'if [ $TEST_SUITE = "kitchensink" ]; then tasks/e2e-kitchensink.sh; fi'
17-
- 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi'
1819
env:
20+
global:
21+
- USE_YARN=no
1922
matrix:
2023
- TEST_SUITE=simple
21-
- TEST_SUITE=installs
22-
- TEST_SUITE=kitchensink
23-
matrix:
24-
include:
25-
- node_js: 0.10
26-
env: TEST_SUITE=old-node
27-
- node_js: 6
28-
env: TEST_SUITE=kitchensink
24+
- TEST_SUITE=install
25+
# There's a weird Yarn/Lerna bug related to prerelease versions.
26+
# TODO: reenable after we ship 1.0.
27+
# - node_js: 6
28+
# env: USE_YARN=yes TEST_SUITE=simple

package.json

+9-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
{
22
"private": true,
3-
"workspaces": [
4-
"packages/*"
5-
],
63
"scripts": {
7-
"build": "cd packages/react-scripts && node scripts/build.js",
4+
"build": "node packages/react-scripts/scripts/build.js",
85
"changelog": "lerna-changelog",
9-
"create-react-app": "node tasks/cra.js",
6+
"create-react-app": "tasks/cra.sh",
107
"e2e": "tasks/e2e-simple.sh",
118
"e2e:docker": "tasks/local-test.sh",
12-
"postinstall": "cd packages/react-error-overlay/ && yarn build:prod",
13-
"publish": "tasks/publish.sh",
14-
"start": "cd packages/react-scripts && node scripts/start.js",
15-
"screencast": "svg-term --cast hItN7sl5yfCPTHxvFg5glhhfp --out screencast.svg --window",
16-
"test": "cd packages/react-scripts && node scripts/test.js --env=jsdom",
17-
"format": "prettier --trailing-comma es5 --single-quote --write 'packages/*/*.js' 'packages/*/!(node_modules)/**/*.js'",
9+
"postinstall": "node bootstrap.js && cd packages/react-error-overlay/ && npm run build:prod",
10+
"publish": "tasks/release.sh",
11+
"start": "node packages/react-scripts/scripts/start.js",
12+
"test": "node packages/react-scripts/scripts/test.js --env=jsdom",
13+
"format": "prettier --trailing-comma es5 --single-quote --write \"packages/*/*.js\" \"packages/*/!(node_modules)/**/*.js\"",
1814
"precommit": "lint-staged"
1915
},
2016
"devDependencies": {
@@ -24,11 +20,10 @@
2420
"@types/react-dom": "^15.5.0",
2521
"eslint": "^4.4.1",
2622
"husky": "^0.13.2",
27-
"lerna": "2.6.0",
23+
"lerna": "^2.0.0",
2824
"lerna-changelog": "^0.6.0",
2925
"lint-staged": "^3.3.1",
30-
"prettier": "1.6.1",
31-
"svg-term-cli": "^2.0.3"
26+
"prettier": "^1.5.2"
3227
},
3328
"lint-staged": {
3429
"*.js": [

packages/react-scripts/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-scripts-ts",
3-
"version": "2.14.0",
3+
"version": "2.14.1-0",
44
"description": "Configuration and scripts for Create React App.",
55
"repository": "wmonk/create-react-app",
66
"license": "BSD-3-Clause",

tasks/e2e-installs.sh

+68-52
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,13 @@ cd "$(dirname "$0")"
1414

1515
# CLI and app temporary locations
1616
# http://unix.stackexchange.com/a/84980
17+
temp_cli_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_cli_path'`
1718
temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'`
18-
custom_registry_url=http://localhost:4873
19-
original_npm_registry_url=`npm get registry`
20-
original_yarn_registry_url=`yarn config get registry`
2119

2220
function cleanup {
2321
echo 'Cleaning up.'
2422
cd "$root_path"
25-
rm -rf "$temp_app_path"
26-
npm set registry "$original_npm_registry_url"
27-
yarn config set registry "$original_yarn_registry_url"
23+
rm -rf "$temp_cli_path" "$temp_app_path"
2824
}
2925

3026
# Error messages are redirected to stderr
@@ -59,6 +55,10 @@ function checkDependencies {
5955
fi
6056
}
6157

58+
function create_react_app {
59+
node "$temp_cli_path"/node_modules/create-react-app/index.js $*
60+
}
61+
6262
# Exit the script with a helpful error message when any error is encountered
6363
trap 'set +x; handle_error $LINENO $BASH_COMMAND' ERR
6464

@@ -72,82 +72,98 @@ set -x
7272
cd ..
7373
root_path=$PWD
7474

75+
# Clear cache to avoid issues with incorrect packages being used
76+
if hash yarnpkg 2>/dev/null
77+
then
78+
# AppVeyor uses an old version of yarn.
79+
# Once updated to 0.24.3 or above, the workaround can be removed
80+
# and replaced with `yarnpkg cache clean`
81+
# Issues:
82+
# https://github.com/yarnpkg/yarn/issues/2591
83+
# https://github.com/appveyor/ci/issues/1576
84+
# https://github.com/facebookincubator/create-react-app/pull/2400
85+
# When removing workaround, you may run into
86+
# https://github.com/facebookincubator/create-react-app/issues/2030
87+
case "$(uname -s)" in
88+
*CYGWIN*|MSYS*|MINGW*) yarn=yarn.cmd;;
89+
*) yarn=yarnpkg;;
90+
esac
91+
$yarn cache clean
92+
fi
93+
7594
if hash npm 2>/dev/null
7695
then
77-
npm i -g npm@latest
96+
# npm 5 is too buggy right now
97+
if [ $(npm -v | head -c 1) -eq 5 ]; then
98+
npm i -g npm@^4.x
99+
fi;
78100
npm cache clean || npm cache verify
79101
fi
80102

81-
# Bootstrap monorepo
82-
yarn
103+
# Prevent bootstrap, we only want top-level dependencies
104+
cp package.json package.json.bak
105+
grep -v "postinstall" package.json > temp && mv temp package.json
106+
npm install
107+
mv package.json.bak package.json
83108

84-
# ******************************************************************************
85-
# First, publish the monorepo.
86-
# ******************************************************************************
87-
88-
# Start local registry
89-
tmp_registry_log=`mktemp`
90-
nohup npx [email protected] &>$tmp_registry_log &
91-
# Wait for `verdaccio` to boot
92-
grep -q 'http address' <(tail -f $tmp_registry_log)
93-
94-
# Set registry to local registry
95-
npm set registry "$custom_registry_url"
96-
yarn config set registry "$custom_registry_url"
109+
if [ "$USE_YARN" = "yes" ]
110+
then
111+
# Install Yarn so that the test can use it to install packages.
112+
npm install -g yarn
113+
yarn cache clean
114+
fi
97115

98-
# Login so we can publish packages
99-
npx [email protected] -u user -p password -e [email protected] -r "$custom_registry_url" --quotes
116+
# We removed the postinstall, so do it manually
117+
node bootstrap.js
100118

101-
# Publish the monorepo
102-
git clean -df
103-
./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest
119+
cd packages/react-error-overlay/
120+
npm run build:prod
121+
cd ../..
104122

105123
# ******************************************************************************
106-
# Test --scripts-version with a version number
124+
# First, pack and install create-react-app.
107125
# ******************************************************************************
108126

109-
cd "$temp_app_path"
110-
npx create-react-app --scripts-version=1.0.17 test-app-version-number
111-
cd test-app-version-number
127+
# Pack CLI
128+
cd "$root_path"/packages/create-react-app
129+
cli_path=$PWD/`npm pack`
112130

113-
# Check corresponding scripts version is installed.
114-
exists node_modules/react-scripts
115-
grep '"version": "1.0.17"' node_modules/react-scripts/package.json
116-
checkDependencies
131+
# Install the CLI in a temporary location
132+
cd "$temp_cli_path"
133+
npm install "$cli_path"
117134

118135
# ******************************************************************************
119-
# Test --use-npm flag
136+
# Test --scripts-version with a version number
120137
# ******************************************************************************
121138

122139
cd "$temp_app_path"
123-
npx create-react-app --use-npm --scripts-version=1.0.17 test-use-npm-flag
124-
cd test-use-npm-flag
140+
create_react_app --scripts-version=0.4.0 test-app-version-number
141+
cd test-app-version-number
125142

126143
# Check corresponding scripts version is installed.
127144
exists node_modules/react-scripts
128-
[ ! -e "yarn.lock" ] && echo "yarn.lock correctly does not exist"
129-
grep '"version": "1.0.17"' node_modules/react-scripts/package.json
145+
grep '"version": "0.4.0"' node_modules/react-scripts/package.json
130146
checkDependencies
131147

132148
# ******************************************************************************
133149
# Test --scripts-version with a tarball url
134150
# ******************************************************************************
135151

136152
cd "$temp_app_path"
137-
npx create-react-app --scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17.tgz test-app-tarball-url
153+
create_react_app --scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-0.4.0.tgz test-app-tarball-url
138154
cd test-app-tarball-url
139155

140156
# Check corresponding scripts version is installed.
141157
exists node_modules/react-scripts
142-
grep '"version": "1.0.17"' node_modules/react-scripts/package.json
158+
grep '"version": "0.4.0"' node_modules/react-scripts/package.json
143159
checkDependencies
144160

145161
# ******************************************************************************
146162
# Test --scripts-version with a custom fork of react-scripts
147163
# ******************************************************************************
148164

149165
cd "$temp_app_path"
150-
npx create-react-app --scripts-version=react-scripts-fork test-app-fork
166+
create_react_app --scripts-version=react-scripts-fork test-app-fork
151167
cd test-app-fork
152168

153169
# Check corresponding scripts version is installed.
@@ -159,7 +175,7 @@ exists node_modules/react-scripts-fork
159175

160176
cd "$temp_app_path"
161177
# we will install a non-existing package to simulate a failed installataion.
162-
npx create-react-app --scripts-version=`date +%s` test-app-should-not-exist || true
178+
create_react_app --scripts-version=`date +%s` test-app-should-not-exist || true
163179
# confirm that the project folder was deleted
164180
test ! -d test-app-should-not-exist
165181

@@ -171,7 +187,7 @@ cd "$temp_app_path"
171187
mkdir test-app-should-remain
172188
echo '## Hello' > ./test-app-should-remain/README.md
173189
# we will install a non-existing package to simulate a failed installataion.
174-
npx create-react-app --scripts-version=`date +%s` test-app-should-remain || true
190+
create_react_app --scripts-version=`date +%s` test-app-should-remain || true
175191
# confirm the file exist
176192
test -e test-app-should-remain/README.md
177193
# confirm only README.md is the only file in the directory
@@ -185,7 +201,7 @@ fi
185201

186202
cd $temp_app_path
187203
curl "https://registry.npmjs.org/@enoah_netzach/react-scripts/-/react-scripts-0.9.0.tgz" -o enoah-scripts-0.9.0.tgz
188-
npx create-react-app --scripts-version=$temp_app_path/enoah-scripts-0.9.0.tgz test-app-scoped-fork-tgz
204+
create_react_app --scripts-version=$temp_app_path/enoah-scripts-0.9.0.tgz test-app-scoped-fork-tgz
189205
cd test-app-scoped-fork-tgz
190206

191207
# Check corresponding scripts version is installed.
@@ -200,22 +216,22 @@ cd "$temp_app_path"
200216
mkdir test-app-nested-paths-t1
201217
cd test-app-nested-paths-t1
202218
mkdir -p test-app-nested-paths-t1/aa/bb/cc/dd
203-
npx create-react-app test-app-nested-paths-t1/aa/bb/cc/dd
219+
create_react_app test-app-nested-paths-t1/aa/bb/cc/dd
204220
cd test-app-nested-paths-t1/aa/bb/cc/dd
205-
yarn start --smoke-test
221+
npm start -- --smoke-test
206222

207223
# Testing a path that does not exist
208224
cd "$temp_app_path"
209-
npx create-react-app test-app-nested-paths-t2/aa/bb/cc/dd
225+
create_react_app test-app-nested-paths-t2/aa/bb/cc/dd
210226
cd test-app-nested-paths-t2/aa/bb/cc/dd
211-
yarn start --smoke-test
227+
npm start -- --smoke-test
212228

213229
# Testing a path that is half exists
214230
cd "$temp_app_path"
215231
mkdir -p test-app-nested-paths-t3/aa
216-
npx create-react-app test-app-nested-paths-t3/aa/bb/cc/dd
232+
create_react_app test-app-nested-paths-t3/aa/bb/cc/dd
217233
cd test-app-nested-paths-t3/aa/bb/cc/dd
218-
yarn start --smoke-test
234+
npm start -- --smoke-test
219235

220236
# Cleanup
221237
cleanup

0 commit comments

Comments
 (0)