Skip to content

Commit e62225a

Browse files
authored
Update mr.yml
1 parent c9e9f57 commit e62225a

File tree

1 file changed

+38
-47
lines changed

1 file changed

+38
-47
lines changed

.github/workflows/mr.yml

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,40 @@
1-
# This is a basic workflow to help you get started with Actions
1+
#!/bin/bash
22

3-
name: MR_CHECK
3+
range_sha=${BASE_SHA}
4+
echo $(git diff --name-status ${range_sha} | awk '{print $2}')
5+
#service files
6+
update_service_functions=""
7+
service_files=`git diff --name-status ${range_sha} | awk '{print $2}' | grep "^tencentcloud/service*"`
8+
if [ $service_files ] ; then
9+
update_service_functions=`echo $service_files | xargs git diff ${range_sha} | grep "@@" | grep "func" | awk -F ")" '{print $2}' | awk -F "(" '{print $1}' | tr -d ' '`
10+
fi
11+
echo "update_service_functions: $update_service_functions"
12+
need_test_files=""
13+
for update_service_function in $update_service_functions; do
14+
tmp_files=`grep -r --with-filename $update_service_function ./tencentcloud | awk -F ":" '{print $1}' | grep -v "service_tencent*" | awk -F "/" '{print $3}' | sort | uniq | egrep "^resource_tc_|^data_source_tc" | awk -F "." '{print $1}' | awk '/_test$/{print "tencentcloud/"$0".go"} !/_test$/{print "tencentcloud/"$0"_test.go"}'`
15+
need_test_files="$need_test_files $tmp_files"
16+
done
17+
echo "need_test_files: $need_test_files"
418

5-
# Controls when the workflow will run
6-
on:
7-
pull_request_target:
8-
types: [labeled]
9-
10-
# Allows you to run this workflow manually from the Actions tab
11-
workflow_dispatch:
12-
13-
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
14-
jobs:
15-
# This workflow contains a single job called "build"
16-
build:
17-
# The type of runner that the job will run on
18-
runs-on: ubuntu-latest
19-
20-
# Steps represent a sequence of tasks that will be executed as part of the job
21-
steps:
22-
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
23-
- uses: actions/checkout@v3
24-
with:
25-
fetch-depth: 0
26-
ref: ${{ github.event.pull_request.head.sha }}
27-
28-
# Runs a set of commands using the runners shell
29-
- name: MR INFO
30-
run: |
31-
export BASE_SHA=${{ github.event.pull_request.base.sha }}
32-
export HEAD_SHA=${{ github.event.pull_request.head.sha }}
33-
export TF_ACC=true
34-
export TENCENTCLOUD_REGION=ap-guangzhou
35-
export TENCENTCLOUD_SECRET_KEY=${{ secrets.TENCENTCLOUD_SECRET_KEY }}
36-
export TENCENTCLOUD_SECRET_ID=${{ secrets.TENCENTCLOUD_SECRET_ID }}
37-
export TENCENTCLOUD_APPID=${{ secrets.TENCENTCLOUD_APPID }}
38-
export TENCENTCLOUD_OWNER_UIN=${{ secrets.TENCENTCLOUD_OWNER_UIN }}
39-
export TENCENTCLOUD_SECRET_ID_INTERNATION=${{ secrets.TENCENTCLOUD_SECRET_ID_INTERNATION }}
40-
export TENCENTCLOUD_SECRET_KEY_INTERNATION=${{ secrets.TENCENTCLOUD_SECRET_KEY_INTERNATION }}
41-
export TENCENTCLOUD_SECRET_ID_PREPAY=${{ secrets.TENCENTCLOUD_SECRET_ID_PREPAY }}
42-
export TENCENTCLOUD_SECRET_KEY_PREPAY=${{ secrets.TENCENTCLOUD_SECRET_KEY_PREPAY }}
43-
export TENCENTCLOUD_SECRET_ID_PRIVATE=${{ secrets.TENCENTCLOUD_SECRET_ID_PRIVATE }}
44-
export TENCENTCLOUD_SECRET_KEY_PRIVATE=${{ secrets.TENCENTCLOUD_SECRET_KEY_PRIVATE }}
45-
export TENCENTCLOUD_SECRET_KEY_COMMON=${{ secrets.TENCENTCLOUD_SECRET_KEY }}
46-
export TENCENTCLOUD_SECRET_ID_COMMON=${{ secrets.TENCENTCLOUD_SECRET_ID }}
47-
export TENCENTCLOUD_SECRET_KEY_SUB_ACCOUNT=${{ secrets.TENCENTCLOUD_SECRET_KEY_SUB_ACCOUNT }}
48-
export TENCENTCLOUD_SECRET_ID_SUB_ACCOUNT=${{ secrets.TENCENTCLOUD_SECRET_ID_SUB_ACCOUNT }}
49-
sh .githooks/pre-commit
19+
# resource&&data_source files
20+
update_sources=`git diff --name-status ${range_sha}| awk '{print $2}' | egrep "^tencentcloud/resource_tc|^tencentcloud/data_source" | egrep -v "_test.go" | awk -F "." '{print $1"_test.go"}'`
21+
echo "update_sources: $update_sources"
22+
# test files
23+
delta_test_files=`git diff --name-status ${range_sha} | egrep "_test\.go$" | awk '{print $2}'`
24+
echo "delta_test_files: $delta_test_files"
25+
# all test files
26+
delta_test_files="$delta_test_files $need_test_files $update_sources"
27+
delta_test_files=`echo $delta_test_files | xargs -n1 | sort | uniq`
28+
echo "all delta_test_files: $delta_test_files"
29+
for delta_test_file in ${delta_test_files}; do
30+
test_casts=`egrep "func TestAcc.+\(" ${delta_test_file} | awk -F "(" '{print $1}' | awk '{print $2}' | grep -v "NeedFix"`
31+
echo "[$delta_test_file] \n$test_casts"
32+
for test_cast in ${test_casts}; do
33+
go_test_cmd="go test -v -run ${test_cast} -timeout=0 ./tencentcloud/"
34+
$go_test_cmd
35+
if [ $? -ne 0 ]; then
36+
printf "[GO TEST FILED] ${go_test_cmd}"
37+
exit 1
38+
fi
39+
done
40+
done

0 commit comments

Comments
 (0)