solve publishing issues and monorepo-related dependency issues, start the prep work for static gh-pages deployments
This commit is contained in:
parent
c3179ad702
commit
1f9426f799
19 changed files with 172 additions and 61 deletions
48
README.md
48
README.md
|
|
@ -12,18 +12,22 @@ Effortless deployment for Next.js apps. 🚀
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
`yarn add --dev next-deploy`
|
|
||||||
|
|
||||||
[Make sure your environment is configured to deploy.](#Configuration)
|
[Make sure your environment is configured to deploy.](#Configuration)
|
||||||
|
|
||||||
|
The one-liner: `npx next-deploy`
|
||||||
|
|
||||||
|
You can also install locally:
|
||||||
|
`yarn add --dev next-deploy`
|
||||||
`yarn next-deploy`
|
`yarn next-deploy`
|
||||||
|
|
||||||
## Background
|
## Background
|
||||||
|
|
||||||
next-deploy started as a fork of [serverless-next.js](#https://github.com/serverless-nextjs/serverless-next.js) which itself is an orchestrator of various [serverless-components](#https://github.com/serverless-components/).
|
Next Deploy started as a fork of [serverless-next.js](#https://github.com/serverless-nextjs/serverless-next.js) which itself is an orchestrator of various [serverless-components](#https://github.com/serverless-components/).
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
### AWS
|
||||||
|
|
||||||
To deploy to AWS you will need to set your credentials in your environment:
|
To deploy to AWS you will need to set your credentials in your environment:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -31,11 +35,15 @@ AWS_ACCESS_KEY_ID=******
|
||||||
AWS_SECRET_ACCESS_KEY=******
|
AWS_SECRET_ACCESS_KEY=******
|
||||||
```
|
```
|
||||||
|
|
||||||
If your account is restricted, [ensure that you enough permissions to deploy](docs/aws-permissions.md).
|
If your account is restricted, [ensure that you have enough permissions to deploy](docs/aws-permissions.md).
|
||||||
|
|
||||||
|
### GitHub
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
## Advanced Configuration
|
## Advanced Configuration
|
||||||
|
|
||||||
The deployment configuration is to be provided through `next-deploy.config.js`, which will be automatically created for you the first time you run `yarn next-deploy`.
|
The deployment configuration is to be provided through `next-deploy.config.js`, which will be automatically created for you the first time you run `next-deploy`.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
@ -44,24 +52,25 @@ module.exports = {
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
A more advanced configuration that sets more [configurable options](#Options):
|
A more advanced configuration that sets more [configurable options](#ConfigurationOptions):
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
module.exports = {
|
module.exports = {
|
||||||
bucketName: process.env.BUCKET_NAME,
|
engine: 'aws',
|
||||||
description: process.env.LAMBDA_DESCRIPTION,
|
|
||||||
name: {
|
|
||||||
defaultLambda: process.env.DEFAULT_LAMBDA_NAME,
|
|
||||||
apiLambda: process.env.API_LAMBDA_NAME,
|
|
||||||
},
|
|
||||||
domain: [process.env.SUBDOMAIN, process.env.DOMAIN],
|
|
||||||
onPreDeploy: () => console.log('⚡ Starting Deployment ⚡'),
|
onPreDeploy: () => console.log('⚡ Starting Deployment ⚡'),
|
||||||
onPostDeploy: () => console.log('✅ Deployment Complete ✅'),
|
onShutdown: () => console.log('⛔ Interrupted ⛔'),
|
||||||
|
onPostDeploy: () => console.log('🌟 Deployment Complete 🌟'),
|
||||||
debug: true,
|
debug: true,
|
||||||
build: true,
|
|
||||||
|
bucketName: 'bucket-name',
|
||||||
|
description: 'lambda-description',
|
||||||
|
name: 'lambda-name',
|
||||||
|
domain: ['foobar', 'example.com'],
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Environment variables may be substituted from `process.env` to allow for more flexibility that one would need for CI/CD.
|
||||||
|
|
||||||
## Configuration Options
|
## Configuration Options
|
||||||
|
|
||||||
The next-deploy config varies by the provider (engine) that you're deploying to. All configuration options are optional and come with sensible defaults.
|
The next-deploy config varies by the provider (engine) that you're deploying to. All configuration options are optional and come with sensible defaults.
|
||||||
|
|
@ -69,10 +78,11 @@ The next-deploy config varies by the provider (engine) that you're deploying to.
|
||||||
All engines support the basic options:
|
All engines support the basic options:
|
||||||
|
|
||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
| :----------- | :-------------------- | :---------- | :------------------------------------------------------------------------- |
|
| :----------- | :-------------------- | :---------- | :------------------------------------------------------------------------------------------------------- |
|
||||||
| engine | `"aws"` | `"aws"` | The deployment host. |
|
| engine | `"aws" \| "github"` | `"aws"` | The platform to deploy to. |
|
||||||
| debug | `boolean` | `false` | Print helpful messages to |
|
| debug | `boolean` | `false` | Print helpful messages to |
|
||||||
| onPreDeploy | `() => Promise<void>` | `undefined` | A callback to that gets called before the deployment. |
|
| onPreDeploy | `() => Promise<void>` | `undefined` | A callback that gets called before the deployment. |
|
||||||
| onPostDeploy | `() => Promise<void>` | `undefined` | A callback to that gets called after the deployment successfully finishes. |
|
| onPostDeploy | `() => Promise<void>` | `undefined` | A callback that gets called after the deployment successfully finishes. |
|
||||||
|
| onShutdown | `() => Promise<void>` | `undefined` | A callback that gets called after the deployment is shutdown by a INT/QUIT/TERM signal like from ctrl+c. |
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
|
|
|
||||||
26
package.json
26
package.json
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "next-deploy",
|
"name": "next-deploy",
|
||||||
"version": "0.0.5",
|
"version": "0.1.0",
|
||||||
"description": "Effortless deployment for Next.js apps. 🚀",
|
"description": "Effortless deployment for Next.js apps. 🚀",
|
||||||
"author": "Nidratech Ltd. <egor@nidratech.com>",
|
"author": "Nidratech Ltd. <egor@nidratech.com>",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "lerna exec -- yarn build -w",
|
"dev": "lerna exec -- yarn build -w",
|
||||||
"build": "lerna run build",
|
"build": "lerna run build",
|
||||||
"setup": "lerna exec -- yarn",
|
"clean": "lerna run clean",
|
||||||
|
"setup": "yarn && lerna exec -- yarn",
|
||||||
"prepack": "yarn build"
|
"prepack": "yarn build"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
@ -32,19 +33,23 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/nidratech/next-deploy#readme",
|
"homepage": "https://github.com/nidratech/next-deploy#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@next-deploy/aws-cloudfront": "link:./packages/aws-cloudfront",
|
"@next-deploy/aws-cloudfront": "link:node_modules/next-deploy/packages/aws-cloudfront",
|
||||||
"@next-deploy/aws-component": "link:./packages/aws-component",
|
"@next-deploy/aws-component": "link:node_modules/next-deploy/packages/aws-component",
|
||||||
"@next-deploy/aws-domain": "link:./packages/aws-domain",
|
"@next-deploy/aws-domain": "link:node_modules/next-deploy/packages/aws-domain",
|
||||||
"@next-deploy/aws-lambda": "link:./packages/aws-lambda",
|
"@next-deploy/aws-lambda": "link:node_modules/next-deploy/packages/aws-lambda",
|
||||||
"@next-deploy/aws-lambda-builder": "link:./packages/aws-lambda-builder",
|
"@next-deploy/aws-lambda-builder": "link:node_modules/next-deploy/packages/aws-lambda-builder",
|
||||||
"@next-deploy/aws-s3": "link:./packages/aws-s3",
|
"@next-deploy/aws-s3": "link:node_modules/next-deploy/packages/aws-s3",
|
||||||
|
"@next-deploy/github": "link:node_modules/next-deploy/packages/github",
|
||||||
"@serverless/aws-iam-role": "^1.0.0",
|
"@serverless/aws-iam-role": "^1.0.0",
|
||||||
"@serverless/aws-lambda-layer": "^1.0.0",
|
"@serverless/aws-lambda-layer": "^1.0.0",
|
||||||
"@serverless/core": "^1.1.2",
|
"@serverless/core": "^1.1.2",
|
||||||
"@zeit/node-file-trace": "^0.7.0",
|
"@zeit/node-file-trace": "^0.7.0",
|
||||||
"archiver": "^4.0.1",
|
"ansi-escapes": "^4.3.1",
|
||||||
|
"archiver": "^4.0.2",
|
||||||
"aws-sdk": "^2.713.0",
|
"aws-sdk": "^2.713.0",
|
||||||
|
"chalk": "^4.1.0",
|
||||||
"execa": "^4.0.3",
|
"execa": "^4.0.3",
|
||||||
|
"figures": "^3.2.0",
|
||||||
"fs-extra": "^9.0.1",
|
"fs-extra": "^9.0.1",
|
||||||
"globby": "^11.0.1",
|
"globby": "^11.0.1",
|
||||||
"klaw": "^3.0.0",
|
"klaw": "^3.0.0",
|
||||||
|
|
@ -56,7 +61,8 @@
|
||||||
"prettyoutput": "^1.2.0",
|
"prettyoutput": "^1.2.0",
|
||||||
"ramda": "^0.27.0",
|
"ramda": "^0.27.0",
|
||||||
"regex-parser": "^2.2.10",
|
"regex-parser": "^2.2.10",
|
||||||
"s3-stream-upload": "^2.0.2"
|
"s3-stream-upload": "^2.0.2",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
||||||
|
|
|
||||||
3
packages/aws-component/types.d.ts
vendored
3
packages/aws-component/types.d.ts
vendored
|
|
@ -1,5 +1,6 @@
|
||||||
import { PublicDirectoryCache } from '@next-deploy/aws-s3/types';
|
import { PublicDirectoryCache } from '@next-deploy/aws-s3/types';
|
||||||
import { CloudFrontInputs } from '@next-deploy/aws-cloudfront/types';
|
import { CloudFrontInputs } from '@next-deploy/aws-cloudfront/types';
|
||||||
|
import { DomainType } from '@next-deploy/aws-domain/types';
|
||||||
|
|
||||||
type AwsComponentInputs = {
|
type AwsComponentInputs = {
|
||||||
build?: BuildOptions | boolean;
|
build?: BuildOptions | boolean;
|
||||||
|
|
@ -19,8 +20,6 @@ type AwsComponentInputs = {
|
||||||
cloudfront?: CloudFrontInputs;
|
cloudfront?: CloudFrontInputs;
|
||||||
};
|
};
|
||||||
|
|
||||||
type DomainType = 'www' | 'apex' | 'both';
|
|
||||||
|
|
||||||
type BuildOptions = {
|
type BuildOptions = {
|
||||||
cwd?: string;
|
cwd?: string;
|
||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
"compile": "tsc -p tsconfig.build.json"
|
"compile": "tsc -p tsconfig.build.json"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@next-deploy/aws-cloudfront": "link:../aws-cloudfront",
|
||||||
"typescript": "^3.9.6"
|
"typescript": "^3.9.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,7 @@ import { Route53, ACM, CloudFront, Credentials } from 'aws-sdk';
|
||||||
import { utils } from '@serverless/core';
|
import { utils } from '@serverless/core';
|
||||||
|
|
||||||
import { PathPatternConfig } from '@next-deploy/aws-cloudfront/types';
|
import { PathPatternConfig } from '@next-deploy/aws-cloudfront/types';
|
||||||
import { DomainType } from '@next-deploy/aws-component/types';
|
import { AwsDomainInputs, SubDomain, DomainType } from '../types';
|
||||||
import { AwsDomainInputs, SubDomain } from '../types';
|
|
||||||
|
|
||||||
const DEFAULT_MINIMUM_PROTOCOL_VERSION = 'TLSv1.2_2018';
|
const DEFAULT_MINIMUM_PROTOCOL_VERSION = 'TLSv1.2_2018';
|
||||||
const HOSTED_ZONE_ID = 'Z2FDTNDATAQYW2'; // this is a constant that you can get from here https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html
|
const HOSTED_ZONE_ID = 'Z2FDTNDATAQYW2'; // this is a constant that you can get from here https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html
|
||||||
|
|
|
||||||
2
packages/aws-domain/types.d.ts
vendored
2
packages/aws-domain/types.d.ts
vendored
|
|
@ -1,4 +1,3 @@
|
||||||
import { DomainType } from '@next-deploy/aws-component/types';
|
|
||||||
import { PathPatternConfig } from '@next-deploy/aws-cloudfront/types';
|
import { PathPatternConfig } from '@next-deploy/aws-cloudfront/types';
|
||||||
|
|
||||||
type AwsDomainInputs = {
|
type AwsDomainInputs = {
|
||||||
|
|
@ -19,3 +18,4 @@ type SubDomain = {
|
||||||
};
|
};
|
||||||
|
|
||||||
type SubDomainType = 'awsCloudFront' | 'awsS3Website' | 'awsApiGateway' | 'awsAppSync';
|
type SubDomainType = 'awsCloudFront' | 'awsS3Website' | 'awsApiGateway' | 'awsAppSync';
|
||||||
|
type DomainType = 'www' | 'apex' | 'both';
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,10 @@
|
||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@next-deploy/aws-cloudfront@link:../aws-cloudfront":
|
||||||
|
version "0.0.0"
|
||||||
|
uid ""
|
||||||
|
|
||||||
typescript@^3.9.6:
|
typescript@^3.9.6:
|
||||||
version "3.9.6"
|
version "3.9.6"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a"
|
||||||
|
|
|
||||||
|
|
@ -97,8 +97,9 @@ export const handler = async (
|
||||||
if (isHTMLPage || isPublicFile) {
|
if (isHTMLPage || isPublicFile) {
|
||||||
s3Origin.path = isHTMLPage ? '/static-pages' : '/public';
|
s3Origin.path = isHTMLPage ? '/static-pages' : '/public';
|
||||||
|
|
||||||
if (isHTMLPage) {
|
|
||||||
addS3HostHeader(request, normalizedS3DomainName);
|
addS3HostHeader(request, normalizedS3DomainName);
|
||||||
|
|
||||||
|
if (isHTMLPage) {
|
||||||
request.uri = `${uri}.html`;
|
request.uri = `${uri}.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,17 @@ export const SUPPORTED_ENGINES = [
|
||||||
type: 'aws',
|
type: 'aws',
|
||||||
component: '@next-deploy/aws-component',
|
component: '@next-deploy/aws-component',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'github',
|
||||||
|
component: '@next-deploy/github',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
export const DEFAULT_ENGINE = 'aws';
|
export const DEFAULT_ENGINE = 'aws';
|
||||||
export const DEPLOY_CONFIG_NAME = 'next-deploy.config.js';
|
export const DEPLOY_CONFIG_NAME = 'next-deploy.config.js';
|
||||||
|
export const METHOD_NAME_MAP = [
|
||||||
|
{ name: 'default', action: 'Deploying' },
|
||||||
|
{ name: 'build', action: 'Building' },
|
||||||
|
{ name: 'deploy', action: 'Deploying' },
|
||||||
|
{ name: 'remove', action: 'Removing' },
|
||||||
|
];
|
||||||
|
export const STATE_ROOT = '.next-deploy';
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class Context {
|
||||||
process.stdout.write(ansiEscapes.cursorHide);
|
process.stdout.write(ansiEscapes.cursorHide);
|
||||||
|
|
||||||
// Event Handler: Control + C
|
// Event Handler: Control + C
|
||||||
process.on('SIGINT', async () => {
|
process.on('SIGINT', () => {
|
||||||
if (this.isStatusEngineActive()) {
|
if (this.isStatusEngineActive()) {
|
||||||
return this.statusEngineStop('cancel');
|
return this.statusEngineStop('cancel');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
import { BaseDeploymentOptions } from '../types';
|
import { BaseDeploymentOptions } from '../types';
|
||||||
import { DEFAULT_ENGINE, SUPPORTED_ENGINES } from './config';
|
import { DEFAULT_ENGINE, SUPPORTED_ENGINES, METHOD_NAME_MAP, STATE_ROOT } from './config';
|
||||||
import Context from './context';
|
import Context from './context';
|
||||||
|
|
||||||
const METHOD_NAME_MAP = [
|
|
||||||
{ name: 'default', action: 'Deploying' },
|
|
||||||
{ name: 'build', action: 'Building' },
|
|
||||||
{ name: 'deploy', action: 'Deploying' },
|
|
||||||
{ name: 'remove', action: 'Removing' },
|
|
||||||
];
|
|
||||||
|
|
||||||
const deploy = async (deployConfigPath: string, methodName = 'default'): Promise<void> => {
|
const deploy = async (deployConfigPath: string, methodName = 'default'): Promise<void> => {
|
||||||
const {
|
const {
|
||||||
debug = false,
|
debug = false,
|
||||||
engine = DEFAULT_ENGINE,
|
engine = DEFAULT_ENGINE,
|
||||||
onPreDeploy,
|
onPreDeploy,
|
||||||
onPostDeploy,
|
onPostDeploy,
|
||||||
|
onShutdown,
|
||||||
...componentOptions
|
...componentOptions
|
||||||
}: BaseDeploymentOptions = await import(deployConfigPath);
|
}: BaseDeploymentOptions = await import(deployConfigPath);
|
||||||
const engineIndex = SUPPORTED_ENGINES.findIndex(({ type }) => type === engine);
|
const engineIndex = SUPPORTED_ENGINES.findIndex(({ type }) => type === engine);
|
||||||
|
|
||||||
|
onShutdown && handleShutDown(onShutdown);
|
||||||
|
|
||||||
if (engineIndex === -1) {
|
if (engineIndex === -1) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Engine ${engine} is unsupported. Pick one of: ${SUPPORTED_ENGINES.map(
|
`Engine ${engine} is unsupported. Pick one of: ${SUPPORTED_ENGINES.map(
|
||||||
|
|
@ -42,7 +38,7 @@ const deploy = async (deployConfigPath: string, methodName = 'default'): Promise
|
||||||
|
|
||||||
const context = new Context({
|
const context = new Context({
|
||||||
root: process.cwd(),
|
root: process.cwd(),
|
||||||
stateRoot: path.join(process.cwd(), '.next-deploy'),
|
stateRoot: path.join(process.cwd(), STATE_ROOT),
|
||||||
debug,
|
debug,
|
||||||
entity: engine.toUpperCase(),
|
entity: engine.toUpperCase(),
|
||||||
message: method.action,
|
message: method.action,
|
||||||
|
|
@ -72,4 +68,15 @@ const deploy = async (deployConfigPath: string, methodName = 'default'): Promise
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function handleShutDown(onShutdown: () => Promise<void>) {
|
||||||
|
const doShutdown = async () => {
|
||||||
|
await onShutdown();
|
||||||
|
process.exit(1);
|
||||||
|
};
|
||||||
|
|
||||||
|
process.on('SIGINT', doShutdown);
|
||||||
|
process.on('SIGQUIT', doShutdown);
|
||||||
|
process.on('SIGTERM', doShutdown);
|
||||||
|
}
|
||||||
|
|
||||||
export default deploy;
|
export default deploy;
|
||||||
|
|
|
||||||
3
packages/cli/types.d.ts
vendored
3
packages/cli/types.d.ts
vendored
|
|
@ -1,8 +1,9 @@
|
||||||
export type BaseDeploymentOptions = {
|
export type BaseDeploymentOptions = {
|
||||||
engine?: 'aws';
|
engine?: 'aws' | 'github';
|
||||||
debug?: boolean;
|
debug?: boolean;
|
||||||
onPreDeploy?: () => Promise<void>;
|
onPreDeploy?: () => Promise<void>;
|
||||||
onPostDeploy?: () => Promise<void>;
|
onPostDeploy?: () => Promise<void>;
|
||||||
|
onShutdown?: () => Promise<void>;
|
||||||
};
|
};
|
||||||
|
|
||||||
type ContextConfig = {
|
type ContextConfig = {
|
||||||
|
|
|
||||||
15
packages/github/package.json
Normal file
15
packages/github/package.json
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"name": "@next-deploy/github",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"types": "dist/index.d.ts",
|
||||||
|
"scripts": {
|
||||||
|
"build": "yarn clean && yarn compile",
|
||||||
|
"clean": "rm -rf ./dist",
|
||||||
|
"compile": "tsc -p tsconfig.build.json"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"typescript": "^3.9.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
3
packages/github/serverless.js
Normal file
3
packages/github/serverless.js
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
const component = require('./dist/component.js');
|
||||||
|
|
||||||
|
module.exports = component.default;
|
||||||
25
packages/github/src/component.ts
Normal file
25
packages/github/src/component.ts
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { Component } from '@serverless/core';
|
||||||
|
|
||||||
|
import { GithubInputs, DeploymentResult } from '../types';
|
||||||
|
|
||||||
|
class GithubComponent extends Component {
|
||||||
|
async default(inputs: GithubInputs = {}): Promise<DeploymentResult> {
|
||||||
|
return this.deploy(inputs);
|
||||||
|
}
|
||||||
|
|
||||||
|
async build(inputs: GithubInputs = {}): Promise<void> {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
async deploy(inputs: GithubInputs = {}): Promise<DeploymentResult> {
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
async remove(): Promise<void> {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default GithubComponent;
|
||||||
9
packages/github/tsconfig.build.json
Normal file
9
packages/github/tsconfig.build.json
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"extends": "../../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"sourceMap": false,
|
||||||
|
"removeComments": true,
|
||||||
|
"outDir": "dist"
|
||||||
|
},
|
||||||
|
"include": ["./src/", "../../.d.ts"]
|
||||||
|
}
|
||||||
3
packages/github/types.d.ts
vendored
Normal file
3
packages/github/types.d.ts
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
export type GithubInputs = {};
|
||||||
|
|
||||||
|
type DeploymentResult = {};
|
||||||
8
packages/github/yarn.lock
Normal file
8
packages/github/yarn.lock
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
typescript@^3.9.6:
|
||||||
|
version "3.9.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a"
|
||||||
|
integrity sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==
|
||||||
35
yarn.lock
35
yarn.lock
|
|
@ -1875,27 +1875,31 @@
|
||||||
call-me-maybe "^1.0.1"
|
call-me-maybe "^1.0.1"
|
||||||
glob-to-regexp "^0.3.0"
|
glob-to-regexp "^0.3.0"
|
||||||
|
|
||||||
"@next-deploy/aws-cloudfront@link:./packages/aws-cloudfront":
|
"@next-deploy/aws-cloudfront@link:node_modules/next-deploy/packages/aws-cloudfront":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
"@next-deploy/aws-component@link:./packages/aws-component":
|
"@next-deploy/aws-component@link:node_modules/next-deploy/packages/aws-component":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
"@next-deploy/aws-domain@link:./packages/aws-domain":
|
"@next-deploy/aws-domain@link:node_modules/next-deploy/packages/aws-domain":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
"@next-deploy/aws-lambda-builder@link:./packages/aws-lambda-builder":
|
"@next-deploy/aws-lambda-builder@link:node_modules/next-deploy/packages/aws-lambda-builder":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
"@next-deploy/aws-lambda@link:./packages/aws-lambda":
|
"@next-deploy/aws-lambda@link:node_modules/next-deploy/packages/aws-lambda":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
"@next-deploy/aws-s3@link:./packages/aws-s3":
|
"@next-deploy/aws-s3@link:node_modules/next-deploy/packages/aws-s3":
|
||||||
|
version "0.0.0"
|
||||||
|
uid ""
|
||||||
|
|
||||||
|
"@next-deploy/github@link:node_modules/next-deploy/packages/github":
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
uid ""
|
uid ""
|
||||||
|
|
||||||
|
|
@ -2692,7 +2696,7 @@ ansi-escapes@^3.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
|
||||||
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
|
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
|
||||||
|
|
||||||
ansi-escapes@^4.3.0:
|
ansi-escapes@^4.3.0, ansi-escapes@^4.3.1:
|
||||||
version "4.3.1"
|
version "4.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
|
||||||
integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
|
integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
|
||||||
|
|
@ -2799,13 +2803,13 @@ archiver@^3.0.0:
|
||||||
tar-stream "^2.1.0"
|
tar-stream "^2.1.0"
|
||||||
zip-stream "^2.1.2"
|
zip-stream "^2.1.2"
|
||||||
|
|
||||||
archiver@^4.0.1:
|
archiver@^4.0.2:
|
||||||
version "4.0.1"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz#3f722b121777e361ca9fad374ecda38e77e63c7f"
|
resolved "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c"
|
||||||
integrity sha512-/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q==
|
integrity sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
archiver-utils "^2.1.0"
|
archiver-utils "^2.1.0"
|
||||||
async "^2.6.3"
|
async "^3.2.0"
|
||||||
buffer-crc32 "^0.2.1"
|
buffer-crc32 "^0.2.1"
|
||||||
glob "^7.1.6"
|
glob "^7.1.6"
|
||||||
readable-stream "^3.6.0"
|
readable-stream "^3.6.0"
|
||||||
|
|
@ -2962,6 +2966,11 @@ async@^2.6.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.17.14"
|
lodash "^4.17.14"
|
||||||
|
|
||||||
|
async@^3.2.0:
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
|
||||||
|
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
|
||||||
|
|
||||||
asynckit@^0.4.0:
|
asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
|
|
@ -3507,7 +3516,7 @@ chalk@^2.0.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
|
||||||
escape-string-regexp "^1.0.5"
|
escape-string-regexp "^1.0.5"
|
||||||
supports-color "^5.3.0"
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
chalk@^4.0.0:
|
chalk@^4.0.0, chalk@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
||||||
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
||||||
|
|
|
||||||
Reference in a new issue