Skip to content

[feature] flame graph units update #767

[feature] flame graph units update

[feature] flame graph units update #767

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches:
- main
- v6.[1-9]
- v7.[1-9]
- 'feature-**'
- latest
- backend-plugin
tags:
- '*'
workflow_dispatch:
inputs:
ref:
description: "Why trigger?"
required: true
type: string
env:
IMAGE: "deepflowio-init-grafana"
GRAFANA_API_KEY: ${{ secrets.GRAFANA_API_KEY }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Set Env
run: |
echo "IMAGE_TAG_PREFIX=${{ github.ref_name }}"|sed 's|main|latest|' >> $GITHUB_ENV
echo "IMAGE_TAG=$(git rev-list --count HEAD)" >> $GITHUB_ENV
- name: Setup Yarn
uses: DerYeger/yarn-setup-action@master
with:
node-version: 18
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.0
- name: Checkout Deepflow Dashboards
uses: actions/checkout@v3
with:
repository: deepflowio/deepflow-dashboards
path: './deepflow-dashboards'
- name: Copy Dashboards To Datasource
run: mkdir ./deepflow-querier-datasource/src/dashboards && cp -r ./deepflow-dashboards/dashboards/* ./deepflow-querier-datasource/src/dashboards
- name: Update plugin.json
run: node ./deepflow-querier-datasource/src/update-dashboards.js
- name: Review plugin.json
run: cat ./deepflow-querier-datasource/src/plugin.json
- name: Install All Dependencies
run: 'test -d deepflow-apptracing-panel/dist || yarn install:all'
- name: Update Version
run: |
files=(package.json */package.json)
version=${{ env.IMAGE_TAG_PREFIX }}
version=${version#v}
for file in "${files[@]}"; do
sed -i "s/\"version\": \".*\"/\"version\": \"$version\"/" $file
done
- name: Build All Plugins
run: 'test -d deepflow-apptracing-panel/dist || yarn build:all'
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version-file: deepflow-querier-datasource/go.mod
check-latest: true
- name: Install Go Mage
run: |
cd ./deepflow-querier-datasource
go env
go install -mod=mod github.com/magefile/mage
whereis mage
- name: Build Backend Plugin
run: |
cd ./deepflow-querier-datasource
mage -v
# - name: Sign All plugins
# run: yarn sign:all
# if: ${{ env.GRAFANA_API_KEY != '' }}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
with:
install: true
- uses: robinraju/[email protected]
with:
repository: "grafana/clickhouse-datasource"
tag: "v2.2.1"
fileName: "grafana-clickhouse-datasource-2.2.1.linux_arm64.zip"
- uses: robinraju/[email protected]
with:
repository: "grafana/clickhouse-datasource"
tag: "v2.2.1"
fileName: "grafana-clickhouse-datasource-2.2.1.linux_amd64.zip"
- name: Unzip grafana-clickhouse-datasource
run: |
unzip -d plugin-amd64 grafana-clickhouse-datasource-2.2.1.linux_amd64.zip
unzip -d plugin-arm64 grafana-clickhouse-datasource-2.2.1.linux_arm64.zip
- name: Log In To GitHub Docker Registry
uses: docker/login-action@v2
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: Log In To Docker Registry
uses: docker/login-action@v2
with:
username: "deepflowce"
password: "${{ secrets.REGISTRY_PASS }}"
- name: Log In To ALIYUN Docker Registry
uses: docker/login-action@v2
with:
registry: "registry.cn-beijing.aliyuncs.com"
username: "${{ secrets.REGISTRY_ALIYUN_USER }}"
password: "${{ secrets.REGISTRY_PASS }}"
- name: Build And Push deepflowio-init-grafana Images
uses: docker/build-push-action@v2
with:
context: .
push: true
file: Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
"ghcr.io/${{ github.repository_owner }}/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}-${{ env.IMAGE_TAG }}"
"ghcr.io/${{ github.repository_owner }}/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}"
"deepflowce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}"
- name: Log In To ALIYUN HongKong Docker Registry
uses: docker/login-action@v2
with:
registry: "registry.cn-hongkong.aliyuncs.com"
username: "${{ secrets.REGISTRY_ALIYUN_USER }}"
password: "${{ secrets.REGISTRY_PASS }}"
- name: Build And Push deepflowio-init-grafana Images to ALIYUN HongKong
uses: docker/build-push-action@v2
with:
context: .
push: true
file: Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
"registry.cn-hongkong.aliyuncs.com/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}-${{ env.IMAGE_TAG }}"
"registry.cn-hongkong.aliyuncs.com/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}"
- name: Log In To ALIYUN Docker Registry
uses: docker/login-action@v2
with:
registry: "registry.cn-beijing.aliyuncs.com"
username: "${{ secrets.REGISTRY_ALIYUN_USER }}"
password: "${{ secrets.REGISTRY_PASS }}"
- name: Build And Push deepflowio-init-grafana Images To ALIYUN BeiJing
uses: docker/build-push-action@v2
with:
context: .
push: true
file: Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
"registry.cn-beijing.aliyuncs.com/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}-${{ env.IMAGE_TAG }}"
"registry.cn-beijing.aliyuncs.com/deepflow-ce/${{ env.IMAGE }}:${{ env.IMAGE_TAG_PREFIX }}"
- name: Build tar.gz
run: |
mkdir release
mv deepflow-apptracing-panel/dist release/deepflow-apptracing-panel
mv deepflow-querier-datasource/dist release/deepflow-querier-datasource
mv deepflow-topo-panel/dist release/deepflow-topo-panel
cd release
tar -zcvf deepflow-gui-grafana.tar.gz *
mv deepflow-apptracing-panel deepflowio-tracing-panel
zip deepflowio-tracing-panel-${{ env.IMAGE_TAG_PREFIX }}.zip ./deepflowio-tracing-panel -r
md5sum deepflowio-tracing-panel-${{ env.IMAGE_TAG_PREFIX }}.zip > deepflowio-tracing-panel-${{ env.IMAGE_TAG_PREFIX }}.zip.md5
rm -r ./deepflowio-tracing-panel
mv deepflow-querier-datasource deepflowio-deepflow-datasource
zip deepflowio-deepflow-datasource-${{ env.IMAGE_TAG_PREFIX }}.zip ./deepflowio-deepflow-datasource -r
md5sum deepflowio-deepflow-datasource-${{ env.IMAGE_TAG_PREFIX }}.zip > deepflowio-deepflow-datasource-${{ env.IMAGE_TAG_PREFIX }}.zip.md5
rm -r ./deepflowio-deepflow-datasource
mv deepflow-topo-panel deepflowio-topo-panel
zip deepflowio-topo-panel-${{ env.IMAGE_TAG_PREFIX }}.zip ./deepflowio-topo-panel -r
md5sum deepflowio-topo-panel-${{ env.IMAGE_TAG_PREFIX }}.zip > deepflowio-topo-panel-${{ env.IMAGE_TAG_PREFIX }}.zip.md5
rm -r ./deepflowio-topo-panel
- name: Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: |
./release/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: manyuanrong/[email protected]
with:
endpoint: "oss-accelerate.aliyuncs.com"
access-key-id: "${{ secrets.ALIYUN_OSS_ACCESS_KEY }}"
access-key-secret: "${{ secrets.ALIYUN_OSS_SECRETS_KEY }}"
- name: Upload Plugin Artifacts
run: |
cd release
ossutil cp -rf deepflow-gui-grafana.tar.gz oss://deepflow-ce/pkg/grafana-plugin/${{ env.IMAGE_TAG_PREFIX }}/deepflow-gui-grafana.tar.gz
- name: Upload Stable Artifacts
if: "startsWith(github.ref, 'refs/tags/')"
run: |
cd release
ossutil cp -rf deepflow-gui-grafana.tar.gz oss://deepflow-ce/pkg/grafana-plugin/stable/deepflow-gui-grafana.tar.gz