Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ae26639

Browse filesBrowse files
authored
Merge pull request #1 from jeoy/develop
Develop
2 parents a45a2a6 + 6d41fce commit ae26639
Copy full SHA for ae26639

16 files changed

+1662
-108
lines changed

‎.github/actions/deploy/entrypoint.sh

Copy file name to clipboardExpand all lines: .github/actions/deploy/entrypoint.sh
+9-8Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
set -e
55

6-
if [ -z "$SECRET_TOKEN" ]
6+
if [ -z "$ACCESS_TOKEN" ]
77
then
8-
echo "SECRET_TOKEN is required"
8+
echo "ACCESS_TOKEN is required"
99
exit 1
1010
fi
1111

@@ -31,21 +31,18 @@ then
3131
COMMIT_NAME="${GITHUB_ACTOR}"
3232
fi
3333

34-
# Directs the action to the the Github workspace.
3534
cd $GITHUB_WORKSPACE && \
3635

37-
# Configures Git.
3836
git init && \
3937
git config --global user.email "${COMMIT_EMAIL}" && \
4038
git config --global user.name "${COMMIT_NAME}" && \
4139

4240

43-
## Initializes the repository path using the access token.
44-
REPOSITORY_PATH="https://${SECRET_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" && \
41+
REPOSITORY_PATH="https://${ACCESS_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" && \
4542

43+
git checkout "${BASE_BRANCH:-master}"
4644

47-
# Builds the project if a build script is provided.
48-
echo "-----------------------Running build scripts... ---------------"
45+
echo "----------------Running build scripts ---------------"
4946

5047
eval "$BUILD_SCRIPT" && \
5148

@@ -60,10 +57,14 @@ then
6057
git pull origin "${DEPLOY_BRANCH:-gh-pages}"
6158
fi
6259

60+
echo "---------remove node_modules && other useless files------"
6361
shopt -s extglob
6462

6563
rm -rf !($FOLDER) && cp -r $FOLDER/. ./ && rm -r $FOLDER && \
6664

65+
66+
echo "---------generate commit && push------"
67+
6768
if [ -z "$(git status --porcelain)" ]; then
6869
echo "Nothing to deploy"
6970
else

‎.github/workflows/deploy.yml

Copy file name to clipboardExpand all lines: .github/workflows/deploy.yml
+7-6Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: deploy
33
on:
44
push:
55
branches:
6-
- master
6+
- develop
77

88
jobs:
99
build-and-deploy:
@@ -17,8 +17,9 @@ jobs:
1717
env:
1818
COMMIT_EMAIL: jeoy_z@126.com
1919
COMMIT_NAME: jeoy
20-
ACCESS_TOKEN: ${{ secrets.SECRET_TOKEN }}
21-
BASE_BRANCH: master # The branch the action should deploy from.
22-
DEPLOY_BRANCH: gh-pages # The branch the action should deploy to.
23-
FOLDER: build # The folder the action should deploy.
24-
BUILD_SCRIPT: yarn && yarn build # The build script the action should run prior to deploying.
20+
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
21+
BASE_BRANCH: master # The branch you want to build
22+
DEPLOY_BRANCH: gh-pages # The branch you want to deploy
23+
BUILD_SCRIPT: yarn && yarn build # The build script
24+
FOLDER: build # The folder generated by build script
25+

‎README.md

Copy file name to clipboard
+14-1Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
### This action will auto deploy to target branch when it get triggered
1+
# Github-deploy-actions
2+
3+
This action will auto deploy to target branch when it get triggered
4+
5+
# How It Works
26

37
When push to `master` branch
48

@@ -7,3 +11,12 @@ This Action will run `yarn && yarn build`
711
Then push `build` folder as a new commit on `gh-pages` branch
812

913
> note: mark sure `build` folder is on your gitignore list
14+
15+
# deploy page:
16+
17+
[demo](https://jeoy.github.io/github-deploy-actions/)
18+
19+
## what exactly is done during the action
20+
21+
checkout this
22+
[shell](https://github.com/jeoy/github-deploy-actions/blob/develop/.github/actions/deploy/entrypoint.sh)

‎config/env.js

Copy file name to clipboard
+93Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
'use strict';
2+
3+
const fs = require('fs');
4+
const path = require('path');
5+
const paths = require('./paths');
6+
7+
// Make sure that including paths.js after env.js will read .env variables.
8+
delete require.cache[require.resolve('./paths')];
9+
10+
const NODE_ENV = process.env.NODE_ENV;
11+
if (!NODE_ENV) {
12+
throw new Error(
13+
'The NODE_ENV environment variable is required but was not specified.'
14+
);
15+
}
16+
17+
// https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use
18+
var dotenvFiles = [
19+
`${paths.dotenv}.${NODE_ENV}.local`,
20+
`${paths.dotenv}.${NODE_ENV}`,
21+
// Don't include `.env.local` for `test` environment
22+
// since normally you expect tests to produce the same
23+
// results for everyone
24+
NODE_ENV !== 'test' && `${paths.dotenv}.local`,
25+
paths.dotenv,
26+
].filter(Boolean);
27+
28+
// Load environment variables from .env* files. Suppress warnings using silent
29+
// if this file is missing. dotenv will never modify any environment variables
30+
// that have already been set. Variable expansion is supported in .env files.
31+
// https://github.com/motdotla/dotenv
32+
// https://github.com/motdotla/dotenv-expand
33+
dotenvFiles.forEach(dotenvFile => {
34+
if (fs.existsSync(dotenvFile)) {
35+
require('dotenv-expand')(
36+
require('dotenv').config({
37+
path: dotenvFile,
38+
})
39+
);
40+
}
41+
});
42+
43+
// We support resolving modules according to `NODE_PATH`.
44+
// This lets you use absolute paths in imports inside large monorepos:
45+
// https://github.com/facebook/create-react-app/issues/253.
46+
// It works similar to `NODE_PATH` in Node itself:
47+
// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
48+
// Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored.
49+
// Otherwise, we risk importing Node.js core modules into an app instead of Webpack shims.
50+
// https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421
51+
// We also resolve them to make sure all tools using them work consistently.
52+
const appDirectory = fs.realpathSync(process.cwd());
53+
process.env.NODE_PATH = (process.env.NODE_PATH || '')
54+
.split(path.delimiter)
55+
.filter(folder => folder && !path.isAbsolute(folder))
56+
.map(folder => path.resolve(appDirectory, folder))
57+
.join(path.delimiter);
58+
59+
// Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be
60+
// injected into the application via DefinePlugin in Webpack configuration.
61+
const REACT_APP = /^REACT_APP_/i;
62+
63+
function getClientEnvironment(publicUrl) {
64+
const raw = Object.keys(process.env)
65+
.filter(key => REACT_APP.test(key))
66+
.reduce(
67+
(env, key) => {
68+
env[key] = process.env[key];
69+
return env;
70+
},
71+
{
72+
// Useful for determining whether we’re running in production mode.
73+
// Most importantly, it switches React into the correct mode.
74+
NODE_ENV: process.env.NODE_ENV || 'development',
75+
// Useful for resolving the correct path to static assets in `public`.
76+
// For example, <img src={process.env.PUBLIC_URL + '/img/logo.png'} />.
77+
// This should only be used as an escape hatch. Normally you would put
78+
// images into the `src` and `import` them in code to get their paths.
79+
PUBLIC_URL: publicUrl,
80+
}
81+
);
82+
// Stringify all values so we can feed into Webpack DefinePlugin
83+
const stringified = {
84+
'process.env': Object.keys(raw).reduce((env, key) => {
85+
env[key] = JSON.stringify(raw[key]);
86+
return env;
87+
}, {}),
88+
};
89+
90+
return { raw, stringified };
91+
}
92+
93+
module.exports = getClientEnvironment;

‎config/jest/cssTransform.js

Copy file name to clipboard
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict';
2+
3+
// This is a custom Jest transformer turning style imports into empty objects.
4+
// http://facebook.github.io/jest/docs/en/webpack.html
5+
6+
module.exports = {
7+
process() {
8+
return 'module.exports = {};';
9+
},
10+
getCacheKey() {
11+
// The output is always the same.
12+
return 'cssTransform';
13+
},
14+
};

‎config/jest/fileTransform.js

Copy file name to clipboard
+40Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'use strict';
2+
3+
const path = require('path');
4+
const camelcase = require('camelcase');
5+
6+
// This is a custom Jest transformer turning file imports into filenames.
7+
// http://facebook.github.io/jest/docs/en/webpack.html
8+
9+
module.exports = {
10+
process(src, filename) {
11+
const assetFilename = JSON.stringify(path.basename(filename));
12+
13+
if (filename.match(/\.svg$/)) {
14+
// Based on how SVGR generates a component name:
15+
// https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6
16+
const pascalCaseFileName = camelcase(path.parse(filename).name, {
17+
pascalCase: true,
18+
});
19+
const componentName = `Svg${pascalCaseFileName}`;
20+
return `const React = require('react');
21+
module.exports = {
22+
__esModule: true,
23+
default: ${assetFilename},
24+
ReactComponent: React.forwardRef(function ${componentName}(props, ref) {
25+
return {
26+
$$typeof: Symbol.for('react.element'),
27+
type: 'svg',
28+
ref: ref,
29+
key: null,
30+
props: Object.assign({}, props, {
31+
children: ${assetFilename}
32+
})
33+
};
34+
}),
35+
};`;
36+
}
37+
38+
return `module.exports = ${assetFilename};`;
39+
},
40+
};

‎config/modules.js

Copy file name to clipboard
+88Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
'use strict';
2+
3+
const fs = require('fs');
4+
const path = require('path');
5+
const paths = require('./paths');
6+
const chalk = require('react-dev-utils/chalk');
7+
const resolve = require('resolve');
8+
9+
/**
10+
* Get the baseUrl of a compilerOptions object.
11+
*
12+
* @param {Object} options
13+
*/
14+
function getAdditionalModulePaths(options = {}) {
15+
const baseUrl = options.baseUrl;
16+
17+
// We need to explicitly check for null and undefined (and not a falsy value) because
18+
// TypeScript treats an empty string as `.`.
19+
if (baseUrl == null) {
20+
// If there's no baseUrl set we respect NODE_PATH
21+
// Note that NODE_PATH is deprecated and will be removed
22+
// in the next major release of create-react-app.
23+
24+
const nodePath = process.env.NODE_PATH || '';
25+
return nodePath.split(path.delimiter).filter(Boolean);
26+
}
27+
28+
const baseUrlResolved = path.resolve(paths.appPath, baseUrl);
29+
30+
// We don't need to do anything if `baseUrl` is set to `node_modules`. This is
31+
// the default behavior.
32+
if (path.relative(paths.appNodeModules, baseUrlResolved) === '') {
33+
return null;
34+
}
35+
36+
// Allow the user set the `baseUrl` to `appSrc`.
37+
if (path.relative(paths.appSrc, baseUrlResolved) === '') {
38+
return [paths.appSrc];
39+
}
40+
41+
// Otherwise, throw an error.
42+
throw new Error(
43+
chalk.red.bold(
44+
"Your project's `baseUrl` can only be set to `src` or `node_modules`." +
45+
' Create React App does not support other values at this time.'
46+
)
47+
);
48+
}
49+
50+
function getModules() {
51+
// Check if TypeScript is setup
52+
const hasTsConfig = fs.existsSync(paths.appTsConfig);
53+
const hasJsConfig = fs.existsSync(paths.appJsConfig);
54+
55+
if (hasTsConfig && hasJsConfig) {
56+
throw new Error(
57+
'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.'
58+
);
59+
}
60+
61+
let config;
62+
63+
// If there's a tsconfig.json we assume it's a
64+
// TypeScript project and set up the config
65+
// based on tsconfig.json
66+
if (hasTsConfig) {
67+
const ts = require(resolve.sync('typescript', {
68+
basedir: paths.appNodeModules,
69+
}));
70+
config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config;
71+
// Otherwise we'll check if there is jsconfig.json
72+
// for non TS projects.
73+
} else if (hasJsConfig) {
74+
config = require(paths.appJsConfig);
75+
}
76+
77+
config = config || {};
78+
const options = config.compilerOptions || {};
79+
80+
const additionalModulePaths = getAdditionalModulePaths(options);
81+
82+
return {
83+
additionalModulePaths: additionalModulePaths,
84+
hasTsConfig,
85+
};
86+
}
87+
88+
module.exports = getModules();

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.