diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 5db1f65aa3..d56bebfad2 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -40,3 +40,9 @@ jobs: run: | sudo sysctl fs.inotify.max_user_watches=524288 node scripts/cli-e2e-test.js + - name: yarn lint, test after plugin creation + run: | + yarn lint + yarn test + env: + CI: true diff --git a/packages/cli/src/commands/plugin/assets.d.ts b/packages/cli/src/commands/plugin/assets.d.ts index 34ba07f75c..54523e926b 100644 --- a/packages/cli/src/commands/plugin/assets.d.ts +++ b/packages/cli/src/commands/plugin/assets.d.ts @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /// /// /// diff --git a/packages/cli/src/commands/plugin/build.ts b/packages/cli/src/commands/plugin/build.ts index ff95bb994a..4c2113eb2a 100644 --- a/packages/cli/src/commands/plugin/build.ts +++ b/packages/cli/src/commands/plugin/build.ts @@ -16,10 +16,27 @@ import { Command } from 'commander'; import fs from 'fs-extra'; -import recursive from 'recursive-readdir'; import path from 'path'; +import recursive from 'recursive-readdir'; import { run } from '../../helpers/run'; +const copyStaticAssets = async () => { + const pluginRoot = fs.realpathSync(process.cwd()); + const source = path.resolve(pluginRoot, 'src'); + const destination = path.resolve(pluginRoot, 'dist', 'cjs'); + const assetFiles = await recursive(source, [ + '**/*.tsx', + '**/*.ts', + '**/*.js', + ]); + assetFiles.forEach(file => { + const fileToBeCopied = file.replace(source, destination); + const dirForFileToBeCopied = path.dirname(fileToBeCopied); + fs.ensureDirSync(dirForFileToBeCopied); + fs.copyFileSync(file, file.replace(source, destination).toString()); + }); +}; + export default async (cmd: Command) => { const args = [ '--outDir', @@ -37,20 +54,3 @@ export default async (cmd: Command) => { await copyStaticAssets(); await run('tsc', args); }; - -const copyStaticAssets = async () => { - const pluginRoot = fs.realpathSync(process.cwd()); - const source = path.resolve(pluginRoot, 'src'); - const destination = path.resolve(pluginRoot, 'dist', 'cjs'); - const assetFiles = await recursive(source, [ - '**/*.tsx', - '**/*.ts', - '**/*.js', - ]); - assetFiles.forEach(file => { - const fileToBeCopied = file.replace(source, destination); - const dirForFileToBeCopied = path.dirname(fileToBeCopied); - fs.ensureDirSync(dirForFileToBeCopied); - fs.copyFileSync(file, file.replace(source, destination).toString()); - }); -}; diff --git a/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs b/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs index 2bb43d5cce..4801dea6dd 100644 --- a/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +++ b/packages/cli/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs @@ -1,3 +1,4 @@ +/* eslint-disable react/prop-types */ /* * Copyright 2020 Spotify AB * diff --git a/packages/cli/templates/default-plugin/src/plugin.test.ts.hbs b/packages/cli/templates/default-plugin/src/plugin.test.ts.hbs index 0139d97727..4e94ca5d50 100644 --- a/packages/cli/templates/default-plugin/src/plugin.test.ts.hbs +++ b/packages/cli/templates/default-plugin/src/plugin.test.ts.hbs @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import plugin from './plugin'; describe('{{ id }}', () => { diff --git a/packages/cli/templates/default-plugin/src/plugin.ts.hbs b/packages/cli/templates/default-plugin/src/plugin.ts.hbs index 830de5f553..ccac096007 100644 --- a/packages/cli/templates/default-plugin/src/plugin.ts.hbs +++ b/packages/cli/templates/default-plugin/src/plugin.ts.hbs @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createPlugin } from '@spotify-backstage/core'; import ExampleComponent from './components/ExampleComponent'; diff --git a/packages/core/src/testUtils/logCollector.js b/packages/core/src/testUtils/logCollector.js index 57b30c8f5c..c3ffa525b3 100644 --- a/packages/core/src/testUtils/logCollector.js +++ b/packages/core/src/testUtils/logCollector.js @@ -15,6 +15,7 @@ */ /* eslint-disable no-console */ +/* eslint-disable no-param-reassign */ // If the callback function is async this one will be too. export function withLogCollector(logsToCollect, callback) {