77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
||
'use strict';
|
||
/* eslint-disable no-console */
|
||
const execa = require('execa');
|
||
const replace = require('replace-in-file');
|
||
const NetlifyAPI = require('netlify');
|
||
|
||
const client = new NetlifyAPI(process.env.NETLIFY_API_KEY);
|
||
|
||
function logStdOut(opts) {
|
||
console.log(opts.stdout);
|
||
}
|
||
|
||
if (!process.env.NETLIFY_API_KEY || !process.env.NETLIFY_SITE_ID) {
|
||
console.warn(
|
||
'Both NETLIFY_API_KEY and NETLIFY_SITE_ID are required. ' +
|
||
'They can be found on ' +
|
||
'https://app.netlify.com/sites/autocompletejs-playgrounds/settings/general' +
|
||
' and https://app.netlify.com/account/applications'
|
||
);
|
||
process.exit(0);
|
||
}
|
||
|
||
execa('yarn', ['build'])
|
||
.then(logStdOut)
|
||
.then(() => execa('rm', ['-rf', 'netlify-dist']))
|
||
.then(() => execa('mkdir', ['-p', 'netlify-dist/examples']))
|
||
.then(() => execa('cp', ['-r', 'examples', 'netlify-dist']))
|
||
.then(() => execa('mv', ['netlify-dist/examples/index.html', 'netlify-dist']))
|
||
.then(() =>
|
||
replace({
|
||
files: 'netlify-dist/index.html',
|
||
from: /href="\.\./g,
|
||
to: 'href=".'
|
||
})
|
||
)
|
||
.then(() => execa('mkdir', ['-p', 'netlify-dist/test']))
|
||
.then(() =>
|
||
execa('cp', [
|
||
'test/playground.css',
|
||
'test/playground.html',
|
||
'test/playground_angular.html',
|
||
'test/playground_jquery.html',
|
||
'netlify-dist/test'
|
||
])
|
||
)
|
||
.then(() => execa('cp', ['-r', 'dist', 'netlify-dist']))
|
||
.then(() =>
|
||
replace({
|
||
files: [
|
||
'netlify-dist/examples/basic.html',
|
||
'netlify-dist/examples/basic_angular.html',
|
||
'netlify-dist/examples/basic_jquery.html'
|
||
],
|
||
from: /https:\/\/cdn.jsdelivr.net\/autocomplete.js\/0/g,
|
||
to: '../dist'
|
||
})
|
||
)
|
||
.then(() =>
|
||
client.deploy(process.env.NETLIFY_SITE_ID, 'netlify-dist', {
|
||
draft: true,
|
||
message: process.env.TRAVIS_COMMIT_MESSAGE || ''
|
||
})
|
||
)
|
||
.then(({deploy: {id, name, deploy_ssl_url: url}}) =>
|
||
console.log(
|
||
'🕸 site is available at ' +
|
||
url +
|
||
'\n\n' +
|
||
'Deploy details available at https://app.netlify.com/sites/' +
|
||
name +
|
||
'/deploys/' +
|
||
id
|
||
)
|
||
);
|
||
|