build: add release ci (#20)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..645e67d
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,54 @@
+#
+# 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.
+#
+name: Release
+on:
+ push:
+ tags:
+ - 'v[0-9]+.[0-9]+.[0-9]+'
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ node-version: '18.x'
+
+ - name: Get yarn cache path
+ id: yarn-cache-path
+ run: echo "::set-output name=path::$(yarn cache dir)"
+ - uses: actions/cache@v3
+ with:
+ path: ${{ steps.yarn-cache-path.outputs.path }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-
+ - run: yarn install --frozen-lockfile
+ - run: yarn build
+
+ - name: Sign plugin
+ run: yarn sign
+ env:
+ GRAFANA_API_KEY: ${{ secrets.GRAFANA_ACCESS_POLICY_TOKEN }}
+
+ - name: Package plugin
+ run: |
+ mv dist apache-skywalking-datasource
+ zip -r apache-skywalking-datasource-${{ steps.version.outputs.version }}.zip apache-skywalking-datasource
+ sha1sum apache-skywalking-datasource-${{ steps.version.outputs.version }}.zip >SHA1SUMS
+