Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ftr: Adding integration tests using dubbo-go-samples #1223

Merged
merged 3 commits into from
Jun 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:

- name: Integrate Test
run: |
chmod +x integrate_test.sh && [[ -n "${{github.event.pull_request.head.repo.full_name}}" ]] && [[ -n "${{github.event.pull_request.head.sha}}" ]] && ./integrate_test.sh ${{github.event.pull_request.head.repo.full_name}} ${{github.event.pull_request.head.sha}} || ./integrate_test.sh $GITHUB_REPOSITORY $GITHUB_SHA
chmod +x integrate_test.sh && [[ -n "${{github.event.pull_request.head.repo.full_name}}" ]] && [[ -n "${{github.event.pull_request.head.sha}}" ]] && [[ -n "${{github.base_ref}}" ]] && ./integrate_test.sh ${{github.event.pull_request.head.repo.full_name}} ${{github.event.pull_request.head.sha}} ${{github.base_ref}} || ./integrate_test.sh $GITHUB_REPOSITORY $GITHUB_SHA $GITHUB_BASE_REF

- name: Post Coverage
run: bash <(curl -s https://codecov.io/bash)
Expand Down
69 changes: 36 additions & 33 deletions integrate_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,42 +25,45 @@ echo 'start integrate-test'
ROOT_DIR=$(pwd)
echo "integrate-test root work-space -> ${ROOT_DIR}"

# show all travis-env
echo "travis current commit id -> $2"
echo "travis pull request branch -> ${GITHUB_REF}"
echo "travis pull request slug -> ${GITHUB_REPOSITORY}"
echo "travis pull request repo slug -> ${GITHUB_REPOSITORY}"
echo "travis pull request actor -> ${GITHUB_ACTOR}"
echo "travis pull request repo param -> $1"
# show all github-env
echo "github current commit id -> $2"
echo "github pull request branch -> ${GITHUB_REF}"
echo "github pull request slug -> ${GITHUB_REPOSITORY}"
echo "github pull request repo slug -> ${GITHUB_REPOSITORY}"
echo "github pull request actor -> ${GITHUB_ACTOR}"
echo "github pull request repo param -> $1"
echo "github pull request base branch -> $3"
echo "github pull request head branch -> ${GITHUB_HEAD_REF}"

samples_testing() {
echo "use dubbo-go-samples $3 branch for integration testing"
git clone -b "$3" https://github.com/apache/dubbo-go-samples.git samples && cd samples

# #start etcd registry insecure listen in [:]:2379
# docker run -d --network host k8s.gcr.io/etcd:3.3.10 etcd
# echo "etcdv3 listen in [:]2379"
# update dubbo-go to current commit id
go mod edit -replace=dubbo.apache.org/dubbo-go/v3=github.com/"$1"/v3@"$2"

# #start consul registry insecure listen in [:]:8500
# docker run -d --network host consul
# echo "consul listen in [:]8500"
# start integrate test
./start_integrate_test.sh
}

# #start nacos registry insecure listen in [:]:8848
# docker run -d --network host nacos/nacos-server:latest
# echo "ncacos listen in [:]8848"
local_testing() {
echo "use test/integrate/dubbo for integration testing"
# default use zk as registry
#start zookeeper registry insecure listen in [:]:2181
docker run -d --network host zookeeper
echo "zookeeper listen in [:]2181"

# default use zk as registry
#start zookeeper registry insecure listen in [:]:2181
docker run -d --network host zookeeper
echo "zookeeper listen in [:]2181"
# build go-server image
cd ./test/integrate/dubbo/go-server
docker build . -t ci-provider --build-arg REPO="$1" --build-arg COMMITID="$2"
cd "${ROOT_DIR}"
docker run -d --network host ci-provider
}

# build go-server image
cd ./test/integrate/dubbo/go-server
docker build . -t ci-provider --build-arg REPO=$1 --build-arg COMMITID=$2
cd ${ROOT_DIR}
docker run -d --network host ci-provider

# build go-client image
cd ./test/integrate/dubbo/go-client
docker build . -t ci-consumer --build-arg REPO=$1 --build-arg COMMITID=$2
cd ${ROOT_DIR}
# run provider
# check consumer status
docker run -i --network host ci-consumer
# check dubbo-go-samples corresponding branch
res=$(git ls-remote --heads https://github.com/apache/dubbo-go-samples.git "$3" | wc -l)
if [ "$res" -eq "1" ]; then
samples_testing "$@"
else
local_testing "$@"
fi