From be9aab5a558da395889b74ec32fcef0d1feac79a Mon Sep 17 00:00:00 2001 From: kezhenxu94 Date: Fri, 15 Jan 2021 21:41:39 +0800 Subject: [PATCH] bugfix: fix tsc error of dist lib --- .github/workflows/test.yaml | 15 ++++++++++++++- package.json | 2 +- scripts/protoc.sh | 17 +++++++++-------- src/trace/context/CarrierItem.ts | 7 ++++--- tests/build/Dockerfile | 29 +++++++++++++++++++++++++++++ tests/build/main.ts | 25 +++++++++++++++++++++++++ tests/build/package.json | 16 ++++++++++++++++ tests/build/tsconfig.json | 14 ++++++++++++++ 8 files changed, 112 insertions(+), 13 deletions(-) create mode 100644 tests/build/Dockerfile create mode 100644 tests/build/main.ts create mode 100644 tests/build/package.json create mode 100644 tests/build/tsconfig.json diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f210af9..9d48727 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,7 +24,7 @@ on: - master jobs: - Build: + TestPlugins: runs-on: ubuntu-18.04 timeout-minutes: 30 strategy: @@ -54,3 +54,16 @@ jobs: npm i npm run lint npm run test + + TestLib: + runs-on: ubuntu-18.04 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + - name: Test Dist Lib + run: | + docker build . -f tests/build/Dockerfile -t skywalking-nodejs:${{ github.sha }} + docker run --rm skywalking-nodejs:${{ github.sha }} diff --git a/package.json b/package.json index 4409c2b..f6c9d31 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "prepare": "npm run generate-source", "generate-source": "scripts/protoc.sh", - "build": "tsc --build src", + "build": "npm run clean && npm run prepare && tsc --build src && OUT_DIR=lib/proto/ scripts/protoc.sh", "lint": "tslint -p src/tsconfig.json src/**/*.ts", "test": "DEBUG=testcontainers* jest", "format": "prettier --write \"src/**/*.ts\"", diff --git a/scripts/protoc.sh b/scripts/protoc.sh index 8e7679d..992d6c6 100755 --- a/scripts/protoc.sh +++ b/scripts/protoc.sh @@ -16,24 +16,25 @@ # limitations under the License. # -ROOT_DIR="$(dirname "$0")"/.. +ROOT_DIR=$(cd "$(dirname "$0")"/..; pwd) +OUT_DIR="$ROOT_DIR"/${OUT_DIR:-src/proto/} -(rm -rf src/proto || true) && (mkdir -p src/proto || true) && (rm -rf src/proto || true) && (mkdir -p src/proto || true) +mkdir -p $OUT_DIR || true cd "${ROOT_DIR}"/protocol || exit -PROTOC_GEN_TS_PATH="../${ROOT_DIR}/node_modules/.bin/protoc-gen-ts" -PROTOC_PLUGIN="../${ROOT_DIR}/node_modules/.bin/grpc_tools_node_protoc_plugin" -PROTOC="../${ROOT_DIR}/node_modules/.bin/grpc_tools_node_protoc" +PROTOC_GEN_TS_PATH="${ROOT_DIR}/node_modules/.bin/protoc-gen-ts" +PROTOC_PLUGIN="${ROOT_DIR}/node_modules/.bin/grpc_tools_node_protoc_plugin" +PROTOC="${ROOT_DIR}/node_modules/.bin/grpc_tools_node_protoc" ${PROTOC} \ - --js_out=import_style=commonjs,binary:../src/proto/ \ - --grpc_out=../src/proto/ \ + --js_out=import_style=commonjs,binary:$OUT_DIR \ + --grpc_out=$OUT_DIR \ --plugin=protoc-gen-grpc="${PROTOC_PLUGIN}" \ **/*.proto ${PROTOC} \ --plugin=protoc-gen-ts="${PROTOC_GEN_TS_PATH}" \ - --ts_out=../src/proto/ \ + --ts_out=$OUT_DIR \ **/*.proto diff --git a/src/trace/context/CarrierItem.ts b/src/trace/context/CarrierItem.ts index 99b2fa2..b26ae5a 100644 --- a/src/trace/context/CarrierItem.ts +++ b/src/trace/context/CarrierItem.ts @@ -17,8 +17,9 @@ * */ -export class CarrierItem { - value!: string; +export abstract class CarrierItem { + abstract get value(): string; + abstract set value(val: string); - constructor(public key: string) {} + protected constructor(public key: string) {} } diff --git a/tests/build/Dockerfile b/tests/build/Dockerfile new file mode 100644 index 0000000..7c0722f --- /dev/null +++ b/tests/build/Dockerfile @@ -0,0 +1,29 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +FROM node:12 + +WORKDIR /app + +ADD . /app + +RUN npm install request && npm install && npm run build + +ADD tests/build/main.ts /test/main.ts +ADD tests/build/package.json /test/package.json + +WORKDIR /test + +RUN npm install && npm install /app && npm run build diff --git a/tests/build/main.ts b/tests/build/main.ts new file mode 100644 index 0000000..af97cc8 --- /dev/null +++ b/tests/build/main.ts @@ -0,0 +1,25 @@ +/*! + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 agent from 'skywalking-backend-js'; + +agent.start({ + serviceName: 'server', + maxBufferSize: 1000, +}); diff --git a/tests/build/package.json b/tests/build/package.json new file mode 100644 index 0000000..e11b67f --- /dev/null +++ b/tests/build/package.json @@ -0,0 +1,16 @@ +{ + "name": "test", + "version": "1.0.0", + "scripts": { + "build": "tsc main.ts" + }, + "author": "", + "license": "ISC", + "dependencies": { + "tslib": "^2.1.0" + }, + "devDependencies": { + "@types/node": "^14.14.21", + "typescript": "^4.1.3" + } +} diff --git a/tests/build/tsconfig.json b/tests/build/tsconfig.json new file mode 100644 index 0000000..0a402e8 --- /dev/null +++ b/tests/build/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "commonjs", + "rootDir": ".", + "baseUrl": ".", + "outDir": ".", + "resolveJsonModule": true, + "composite": true, + "esModuleInterop": true + }, + "files": [ + "package.json" + ] +}