parent
8a27cd4389
commit
814ac648ec
|
@ -0,0 +1,105 @@
|
||||||
|
name: Unit Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
GO_VERSION: 1.23.4
|
||||||
|
NODEJS_VERSION: 16.20.2
|
||||||
|
steps:
|
||||||
|
- name: Checkout current repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
path: console
|
||||||
|
|
||||||
|
- name: Checkout framework repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
repository: infinilabs/framework
|
||||||
|
path: framework
|
||||||
|
|
||||||
|
- name: Checkout framework-vendor
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
fetch-depth: 0
|
||||||
|
repository: infinilabs/framework-vendor
|
||||||
|
path: vendor
|
||||||
|
|
||||||
|
- name: Set up nodejs toolchain
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: ${{ env.NODEJS_VERSION }}
|
||||||
|
|
||||||
|
- name: Cache dependencies
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules
|
||||||
|
key: ${{ runner.os }}-cnpm-${{ hashFiles('**/package.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cnpm-
|
||||||
|
|
||||||
|
- name: Check nodejs toolchain
|
||||||
|
run: |
|
||||||
|
if ! command -v cnpm >/dev/null 2>&1; then
|
||||||
|
npm install -g rimraf --quiet --no-progress
|
||||||
|
npm install -g cnpm@9.2.0 --quiet --no-progress
|
||||||
|
fi
|
||||||
|
node -v && npm -v && cnpm -v
|
||||||
|
|
||||||
|
- name: Set up go toolchain
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
check-latest: false
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Check go toolchain
|
||||||
|
run: go version
|
||||||
|
|
||||||
|
- name: Cache Build Output
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
.public
|
||||||
|
key: ${{ runner.os }}-build-${{ hashFiles('**/package.json') }}-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-build-${{ hashFiles('**/package.json') }}-
|
||||||
|
${{ runner.os }}-build-
|
||||||
|
|
||||||
|
- name: Unit test
|
||||||
|
env:
|
||||||
|
GOFLAGS: -tags=ci
|
||||||
|
run: |
|
||||||
|
echo Home path is $HOME
|
||||||
|
export WORKBASE=$HOME/go/src/infini.sh
|
||||||
|
export WORK=$WORKBASE/console
|
||||||
|
|
||||||
|
# for test workspace
|
||||||
|
mkdir -p $HOME/go/src/
|
||||||
|
ln -s $GITHUB_WORKSPACE $WORKBASE
|
||||||
|
|
||||||
|
# for web build
|
||||||
|
cd $WORK/web
|
||||||
|
cnpm install --quiet --no-progress
|
||||||
|
cnpm run build --quiet
|
||||||
|
|
||||||
|
# check work folder
|
||||||
|
ls -lrt $WORKBASE/
|
||||||
|
ls -alrt $WORK
|
||||||
|
|
||||||
|
# for unit test
|
||||||
|
cd $WORK
|
||||||
|
echo Testing code at $PWD ...
|
||||||
|
make test
|
|
@ -32,8 +32,8 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"infini.sh/framework/core/elastic"
|
|
||||||
"infini.sh/console/model/insight"
|
"infini.sh/console/model/insight"
|
||||||
|
"infini.sh/framework/core/elastic"
|
||||||
"infini.sh/framework/core/util"
|
"infini.sh/framework/core/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ func GenerateQuery(metric *insight.Metric) (interface{}, error) {
|
||||||
i := 0
|
i := 0
|
||||||
for _, metricItem := range metric.Items {
|
for _, metricItem := range metric.Items {
|
||||||
if metricItem.Name == "" {
|
if metricItem.Name == "" {
|
||||||
metricItem.Name = string('a' + i)
|
metricItem.Name = string(rune('a' + i))
|
||||||
}
|
}
|
||||||
metricAggs := generateAgg(&metricItem, metric.TimeField)
|
metricAggs := generateAgg(&metricItem, metric.TimeField)
|
||||||
if err := util.MergeFields(basicAggs, metricAggs, true); err != nil {
|
if err := util.MergeFields(basicAggs, metricAggs, true); err != nil {
|
||||||
|
@ -156,7 +156,7 @@ func GenerateQuery(metric *insight.Metric) (interface{}, error) {
|
||||||
"field": groups[i].Field,
|
"field": groups[i].Field,
|
||||||
"size": limit,
|
"size": limit,
|
||||||
}
|
}
|
||||||
if i == grpLength - 1 && len(metric.Sort) > 0 {
|
if i == grpLength-1 && len(metric.Sort) > 0 {
|
||||||
var termsOrder []interface{}
|
var termsOrder []interface{}
|
||||||
for _, sortItem := range metric.Sort {
|
for _, sortItem := range metric.Sort {
|
||||||
termsOrder = append(termsOrder, util.MapStr{sortItem.Key: sortItem.Direction})
|
termsOrder = append(termsOrder, util.MapStr{sortItem.Key: sortItem.Direction})
|
||||||
|
@ -244,7 +244,7 @@ func collectMetricData(agg interface{}, groupValues []string, metricData *[]insi
|
||||||
if timeBks, ok := aggM["time_buckets"].(map[string]interface{}); ok {
|
if timeBks, ok := aggM["time_buckets"].(map[string]interface{}); ok {
|
||||||
if bks, ok := timeBks["buckets"].([]interface{}); ok {
|
if bks, ok := timeBks["buckets"].([]interface{}); ok {
|
||||||
md := insight.MetricData{
|
md := insight.MetricData{
|
||||||
Data: map[string][]insight.MetricDataItem{},
|
Data: map[string][]insight.MetricDataItem{},
|
||||||
Groups: groupValues,
|
Groups: groupValues,
|
||||||
}
|
}
|
||||||
for _, bk := range bks {
|
for _, bk := range bks {
|
||||||
|
@ -268,7 +268,7 @@ func collectMetricData(agg interface{}, groupValues []string, metricData *[]insi
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
md := insight.MetricData{
|
md := insight.MetricData{
|
||||||
Data: map[string][]insight.MetricDataItem{},
|
Data: map[string][]insight.MetricDataItem{},
|
||||||
Groups: groupValues,
|
Groups: groupValues,
|
||||||
}
|
}
|
||||||
for k, v := range aggM {
|
for k, v := range aggM {
|
||||||
|
@ -307,7 +307,7 @@ func collectMetricDataOther(agg interface{}, groupValues []string, metricData *[
|
||||||
if timeBks, ok := aggM["time_buckets"].(map[string]interface{}); ok {
|
if timeBks, ok := aggM["time_buckets"].(map[string]interface{}); ok {
|
||||||
if bks, ok := timeBks["buckets"].([]interface{}); ok {
|
if bks, ok := timeBks["buckets"].([]interface{}); ok {
|
||||||
md := insight.MetricData{
|
md := insight.MetricData{
|
||||||
Data: map[string][]insight.MetricDataItem{},
|
Data: map[string][]insight.MetricDataItem{},
|
||||||
Groups: groupValues,
|
Groups: groupValues,
|
||||||
}
|
}
|
||||||
for _, bk := range bks {
|
for _, bk := range bks {
|
||||||
|
@ -332,7 +332,7 @@ func collectMetricDataOther(agg interface{}, groupValues []string, metricData *[
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
md := insight.MetricData{
|
md := insight.MetricData{
|
||||||
Data: map[string][]insight.MetricDataItem{},
|
Data: map[string][]insight.MetricDataItem{},
|
||||||
Groups: groupValues,
|
Groups: groupValues,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue