CI #784
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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/release-downloader@v1.4 | |
with: | |
repository: "grafana/clickhouse-datasource" | |
tag: "v2.2.1" | |
fileName: "grafana-clickhouse-datasource-2.2.1.linux_arm64.zip" | |
- uses: robinraju/release-downloader@v1.4 | |
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/setup-ossutil@v2.0 | |
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 |