From 3dd66ff0f508ed5baaebea6ec0b2ca215f419074 Mon Sep 17 00:00:00 2001 From: Jaco Date: Tue, 5 Jul 2022 23:15:33 +0200 Subject: [PATCH] Additional CI checks (#1754) * Additional CI checks * if: always() --- .eslintrc.js | 3 ++- .github/workflows/pr-any.yml | 6 +++++- deno/check.ts | 6 ++++++ deno/import_map.json | 5 +++++ deno/setup.ts | 27 +++++++++++++++++++++++++++ package.json | 3 +++ 6 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 deno/check.ts create mode 100644 deno/import_map.json create mode 100644 deno/setup.ts diff --git a/.eslintrc.js b/.eslintrc.js index eeccf6414..13436d568 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,7 +7,8 @@ module.exports = { ...base, ignorePatterns: [ ...base.ignorePatterns, - 'jest/**/*' + 'jest/**/*', + '**/deno/*.ts' ], parserOptions: { ...base.parserOptions, diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml index 135b5be94..703b79ace 100644 --- a/.github/workflows/pr-any.yml +++ b/.github/workflows/pr-any.yml @@ -5,7 +5,7 @@ jobs: pr: strategy: matrix: - step: ['lint', 'test', 'build'] + step: ['lint', 'test', 'build', 'deno'] name: ${{ matrix.step }} runs-on: ubuntu-latest env: @@ -13,7 +13,11 @@ jobs: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} steps: - uses: actions/checkout@v2 + - uses: denoland/setup-deno@v1 + with: + deno-version: vx.x.x - name: ${{ matrix.step }} + if: always() run: | yarn install --immutable | grep -v 'YN0013' yarn ${{ matrix.step }} diff --git a/deno/check.ts b/deno/check.ts new file mode 100644 index 000000000..39edfe875 --- /dev/null +++ b/deno/check.ts @@ -0,0 +1,6 @@ +// Copyright 2020-2022 @polkadot/phishing authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// auto-generated via deno/setup.ts, do not edit + +export * as phishing from 'https://deno.land/x/polkadot/phishing/mod.ts'; diff --git a/deno/import_map.json b/deno/import_map.json new file mode 100644 index 000000000..0c420c939 --- /dev/null +++ b/deno/import_map.json @@ -0,0 +1,5 @@ +{ + "imports": { + "https://deno.land/x/polkadot/phishing/": "../packages/phishing/build-deno/" + } +} diff --git a/deno/setup.ts b/deno/setup.ts new file mode 100644 index 000000000..a3f8acf14 --- /dev/null +++ b/deno/setup.ts @@ -0,0 +1,27 @@ +// Copyright 2020-2022 @polkadot/phishing authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import { stringCamelCase } from 'https://deno.land/x/polkadot/util/mod.ts'; + +const exports: string[] = []; +const imports: Record = {}; + +for await (const entry of Deno.readDir('packages')) { + if (entry.isDirectory) { + try { + await Deno.readTextFile(`packages/${entry.name}/src/mod.ts`); + + exports.push(`export * as ${stringCamelCase(entry.name)} from 'https://deno.land/x/polkadot/${entry.name}/mod.ts';`); + + imports[`https://deno.land/x/polkadot/${entry.name}/`] = `../packages/${entry.name}/build-deno/`; + } catch { + // ignore + } + } +} + +await Deno.writeTextFile('deno/check.ts', `// Copyright 2020-${new Date().getFullYear()} @polkadot/phishing authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n// auto-generated via deno/setup.ts, do not edit\n\n${exports.sort().join('\n')}\n`); + +await Deno.writeTextFile('deno/import_map.json', `${JSON.stringify({ imports }, null, 2)}\n`); diff --git a/package.json b/package.json index ea3484dd6..fea40821b 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,9 @@ "build:release:ipfs": "node scripts/ipfsUpload.mjs", "build:rollup": "polkadot-exec-rollup --config", "clean": "polkadot-dev-clean-build", + "deno": "yarn build && yarn deno:setup && yarn deno:check", + "deno:check": "deno check --import-map=deno/import_map.json deno/check.ts", + "deno:setup": "deno run --import-map=deno/import_map.json --allow-read --allow-write deno/setup.ts", "lint": "polkadot-dev-run-lint", "phishing:addrcheck": "polkadot-dev-run-test --runInBand --detectOpenHandles packages/phishing/src/addrcheck", "phishing:crosscheck": "polkadot-dev-run-test --runInBand --detectOpenHandles packages/phishing/src/crosscheck",