Skip to content

Commit

Permalink
WIP add multi support
Browse files Browse the repository at this point in the history
  • Loading branch information
ndelangen committed Dec 3, 2019
1 parent afb1508 commit e479496
Show file tree
Hide file tree
Showing 35 changed files with 518 additions and 71 deletions.
18 changes: 18 additions & 0 deletions .github/workflows/self-multi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "self test development-like"
on:
pull_request:
push:
branches:
- master

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: |
yarn && yarn build
- uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
config: chromatic.config.js
2 changes: 1 addition & 1 deletion .github/workflows/self-run-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ jobs:
with:
appCode: ${{ secrets.CHROMATIC_APP_CODE }}
token: ${{ secrets.GITHUB_TOKEN }}
storybookBuildDir: storybook-static
storybookBuildDir: storybook-static-1
env:
CHROMATIC_STORYBOOK_VERSION: [email protected]
2 changes: 1 addition & 1 deletion .github/workflows/self-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ jobs:
with:
appCode: ${{ secrets.CHROMATIC_APP_CODE }}
token: ${{ secrets.GITHUB_TOKEN }}
storybookBuildDir: storybook-static
storybookBuildDir: storybook-static-1
12 changes: 12 additions & 0 deletions chromatic.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = [
{
id: 'one',
appCode: process.env.CHROMATIC_APP_CODE,
storybookBuildDir: 'storybook-static-1',
},
{
id: 'two',
appCode: process.env.CHROMATIC_APP_CODE,
storybookBuildDir: 'storybook-static-2',
},
];
158 changes: 89 additions & 69 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,47 @@ const getApi = () => {
}
}

const getList = () => {
const appCode = getInput('appCode');

if (appCode) {
return {
default: {
appCode,
buildScriptName: maybe(getInput('buildScriptName')),
scriptName: maybe(getInput('scriptName')),
exec: maybe(getInput('exec')),
doNotStart: maybe(getInput('doNotStart')),
storybookPort: maybe(getInput('storybookPort')),
storybookUrl: maybe(getInput('storybookUrl')),
storybookBuildDir: maybe(getInput('storybookBuildDir')),
storybookHttps: maybe(getInput('storybookHttps')),
storybookCert: maybe(getInput('storybookCert')),
storybookKey: maybe(getInput('storybookKey')),
storybookCa: maybe(getInput('storybookCa')),
autoAcceptChanges: maybe(getInput('autoAcceptChanges')),
exitZeroOnChanges: maybe(getInput('exitZeroOnChanges'), true),
ignoreLastBuildOnBranch: maybe(getInput('ignoreLastBuildOnBranch')),
fromCI: true,
interactive: false,
},
};
} else {
const configLocation = getInput('config');

const list = require(configLocation);

console.log({ list, env: process.env });
return {};
// const val = Object.entries(process.env).filter(e => {
// e
// });
// [`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';

}

}

async function run() {
let deployment_id: number = NaN;
const api = getApi();
Expand All @@ -86,87 +127,66 @@ async function run() {
const { branch, repo, owner, sha } = commit;

try {
const appCode = getInput('appCode');
const buildScriptName = getInput('buildScriptName');
const scriptName = getInput('scriptName');
const exec = getInput('exec');
const doNotStart = getInput('doNotStart');
const storybookPort = getInput('storybookPort');
const storybookUrl = getInput('storybookUrl');
const storybookBuildDir = getInput('storybookBuildDir');
const storybookHttps = getInput('storybookHttps');
const storybookCert = getInput('storybookCert');
const storybookKey = getInput('storybookKey');
const storybookCa = getInput('storybookCa');
const autoAcceptChanges = getInput('autoAcceptChanges');
const exitZeroOnChanges = getInput('exitZeroOnChanges');
const ignoreLastBuildOnBranch = getInput('ignoreLastBuildOnBranch');
const list = getList();

process.env.CHROMATIC_SHA = sha;
process.env.CHROMATIC_BRANCH = branch;

const deployment = api.repos.createDeployment({
repo,
owner,
ref: branch,
environment: 'chromatic',
required_contexts: [],
auto_merge: false,
}).then(deployment => {
deployment_id = deployment.data.id;

return api.repos.createDeploymentStatus({
const outputs = await Object.entries(list).reduce(async (acc, [k, v]) => {
const existing = await acc;

const deployment = api.repos.createDeployment({
repo,
owner,
deployment_id,
state: 'pending',
});
}).catch(e => {
deployment_id = NaN;
console.log('adding deployment to GitHub failed, You are likely on a forked repo and do not have write access.');
});

const chromatic = runChromatic({
appCode,
buildScriptName: maybe(buildScriptName),
scriptName: maybe(scriptName),
exec: maybe(exec),
doNotStart: maybe(doNotStart),
storybookPort: maybe(storybookPort),
storybookUrl: maybe(storybookUrl),
storybookBuildDir: maybe(storybookBuildDir),
storybookHttps: maybe(storybookHttps),
storybookCert: maybe(storybookCert),
storybookKey: maybe(storybookKey),
storybookCa: maybe(storybookCa),
fromCI: true,
interactive: false,
autoAcceptChanges: maybe(autoAcceptChanges),
exitZeroOnChanges: maybe(exitZeroOnChanges, true),
ignoreLastBuildOnBranch: maybe(ignoreLastBuildOnBranch),
});

const [{ url, code }] = await Promise.all([
chromatic,
deployment,
]);

if (typeof deployment_id === 'number' && !isNaN(deployment_id)) {
try {
await api.repos.createDeploymentStatus({
ref: branch,
environment: k === 'default' ? 'chromatic' : 'chromatic ' + k,
required_contexts: [],
auto_merge: false,
}).then(deployment => {
deployment_id = deployment.data.id;

return api.repos.createDeploymentStatus({
repo,
owner,
deployment_id,
state: 'success',
environment_url: url
state: 'pending',
});
} catch (e){
//
}).catch(e => {
deployment_id = NaN;
console.log('adding deployment to GitHub failed, You are likely on a forked repo and do not have write access.');
});

const chromatic = runChromatic(v);

const [{ url, code }] = await Promise.all([
chromatic,
deployment,
]);

if (typeof deployment_id === 'number' && !isNaN(deployment_id)) {
try {
await api.repos.createDeploymentStatus({
repo,
owner,
deployment_id,
state: 'success',
environment_url: url
});
} catch (e){
//
}
}
}

setOutput('url', url);
setOutput('code', code.toString());
return { ...existing, [k]: { code, url } }
}, Promise.resolve({}));


Object.entries(outputs).forEach(([key, { url, code }]) => {
const pre = key === 'default' ? '' : key + '-';

setOutput(pre + 'url', url);
setOutput(pre + 'code', code.toString());
});
} catch (e) {
e.message && error(e.message);
e.stack && error(e.stack);
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added storybook-static-2/favicon.ico
Binary file not shown.
73 changes: 73 additions & 0 deletions storybook-static-2/iframe.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Storybook</title><meta name="viewport" content="width=device-width,initial-scale=1"><base target="_parent"><style>:not(.sb-show-main) > .sb-main,
:not(.sb-show-nopreview) > .sb-nopreview,
:not(.sb-show-errordisplay) > .sb-errordisplay {
display: none;
}

.sb-wrapper {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding: 20px;
font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
overflow: auto;
}

.sb-heading {
font-size: 14px;
font-weight: 600;
letter-spacing: 0.2px;
margin: 10px 0;
padding-right: 25px;
}

.sb-nopreview {
display: flex;
align-content: center;
justify-content: center;
}

.sb-nopreview_main {
margin: auto;
padding: 30px;
border-radius: 10px;
background: rgba(0,0,0,0.03);
}

.sb-nopreview_heading {
text-align: center;
}

.sb-errordisplay {
border: 20px solid rgb(187, 49, 49);
background: #222;
color: #fff;
z-index: 999999;
}

.sb-errordisplay_code {
padding: 10px;
background: #000;
color: #eee;
font-family: "Operator Mono", "Fira Code Retina", "Fira Code", "FiraCode-Retina", "Andale Mono", "Lucida Console", Consolas, Monaco, monospace;
}

.sb-errordisplay pre {
white-space: pre-wrap;
}</style><script>/* globals window */
/* eslint-disable no-underscore-dangle */
try {
if (window.parent !== window) {
window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
window.__VUE_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__VUE_DEVTOOLS_GLOBAL_HOOK__;
}
} catch (e) {
// eslint-disable-next-line no-console
console.warn('unable to connect to parent frame for connecting dev tools');
}</script><style>#root[hidden],
#docs-root[hidden] {
display: none !important;
}</style></head><body><div class="sb-nopreview sb-wrapper"><div class="sb-nopreview_main"><h1 class="sb-nopreview_heading sb-heading">No Preview</h1><p>Sorry, but you either have no stories or none are selected somehow.</p><ul><li>Please check the Storybook config.</li><li>Try reloading the page.</li></ul><p>If the problem persists, check the browser console, or the terminal you've run Storybook from.</p></div></div><div class="sb-errordisplay sb-wrapper"><pre id="error-message" class="sb-heading"></pre><pre class="sb-errordisplay_code"><code id="error-stack"></code></pre></div><div id="root"></div><div id="docs-root"></div><script src="runtime~main.774ec8a69245de6ad3ef.bundle.js"></script><script src="vendors~main.774ec8a69245de6ad3ef.bundle.js"></script><script src="main.774ec8a69245de6ad3ef.bundle.js"></script></body></html>
20 changes: 20 additions & 0 deletions storybook-static-2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Storybook</title><meta name="viewport" content="width=device-width,initial-scale=1"><style>html, body {
overflow: hidden;
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}</style><script>/* globals window */
/* eslint-disable no-underscore-dangle */
try {
if (window.parent !== window) {
window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;
window.__VUE_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__VUE_DEVTOOLS_GLOBAL_HOOK__;
}
} catch (e) {
// eslint-disable-next-line no-console
console.warn('unable to connect to parent frame for connecting dev tools');
}</script><style>#root[hidden],
#docs-root[hidden] {
display: none !important;
}</style></head><body><div id="root"></div><div id="docs-root"></div><script>window['DOCS_MODE'] = false;</script><script src="runtime~main.25fc818af1dd5d1e4dbb.bundle.js"></script><script src="vendors~main.8a575d479d4527f0c5fc.bundle.js"></script><script src="main.133e24f8ec81fc731630.bundle.js"></script></body></html>
1 change: 1 addition & 0 deletions storybook-static-2/main.133e24f8ec81fc731630.bundle.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions storybook-static-2/main.774ec8a69245de6ad3ef.bundle.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions storybook-static-2/main.774ec8a69245de6ad3ef.bundle.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions storybook-static-2/sb_dll/storybook_ui-manifest.json

Large diffs are not rendered by default.

Loading

0 comments on commit e479496

Please sign in to comment.