Skip to content

Commit

Permalink
Merge pull request #205 from chaoxinhu/master
Browse files Browse the repository at this point in the history
- Migrate CI & Pipeline to github actions
  • Loading branch information
chaoxinhu committed May 17, 2020
2 parents 578554b + 9934097 commit 82e5006
Show file tree
Hide file tree
Showing 5 changed files with 293 additions and 445 deletions.
20 changes: 13 additions & 7 deletions .ci/script/build-ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ weid_config_tpl=${java_source_code_dir}/src/main/resources/weidentity.properties
weid_config=${java_source_code_dir}/src/main/resources/weidentity.properties
font=${java_source_code_dir}/src/main/resources/NotoSansCJKtc-Regular.ttf

export MYSQL_ADDRESS=${1:-0.0.0.0:3306}
export MYSQL_DATABASE=${2:-database}
export MYSQL_USERNAME=${3:-username}
export MYSQL_PASSWORD=${4:-password}

JAVA_OPTS='-Djdk.tls.namedGroups="secp256r1,secp256k1"'

function modify_config()
Expand Down Expand Up @@ -34,8 +39,7 @@ function modify_config()
NODEVAR='${ORG_ID}:${MYSQL_ADDRESS}:${MYSQL_DATABASE}:${MYSQL_USERNAME}:${MYSQL_PASSWORD}:${BLOCKCHIAN_NODE_INFO}'
envsubst ${NODEVAR} < ${weid_config_tpl} >${weid_config}
cp ${weid_config} ${java_source_code_dir}/src/test/resources/
# cat ${weid_config}


if [ -e ${java_source_code_dir}/ecdsa_key ];then
cp ${java_source_code_dir}/ecdsa_key ${java_source_code_dir}/src/test/resources/
fi
Expand All @@ -53,6 +57,8 @@ function gradle_build_sdk()
cp ${java_source_code_dir}/.ci/ca.crt ${java_source_code_dir}/src/main/resources
cp ${java_source_code_dir}/.ci/node.crt ${java_source_code_dir}/src/main/resources
cp ${java_source_code_dir}/.ci/node.key ${java_source_code_dir}/src/main/resources
cp ${java_source_code_dir}/dist/lib/NotoSansCJKtc-Regular.ttf ${java_source_code_dir}/src/main/resources
cp ${java_source_code_dir}/dist/lib/NotoSansCJKtc-Regular.ttf ${java_source_code_dir}/src/test/resources

export FISCO_BCOS_VERSION="2"
export CNS_CONTRACT_FOLLOW=
Expand All @@ -66,11 +72,11 @@ function gradle_build_sdk()
content="$NODE_IP"
#content="0.0.0.0:8900"
export BLOCKCHIAN_NODE_INFO=${content}
export ORG_ID="webank-ci"
export MYSQL_ADDRESS=0.0.0.0:3306
export MYSQL_DATABASE=database
export MYSQL_USERNAME=username
export MYSQL_PASSWORD=password
export ORG_ID="webank_ci"
echo $MYSQL_ADDRESS
echo $MYSQL_DATABASE
echo $MYSQL_USERNAME
echo $MYSQL_PASSWORD
NODEVAR='${ORG_ID}:${MYSQL_ADDRESS}:${MYSQL_DATABASE}:${MYSQL_USERNAME}:${MYSQL_PASSWORD}:${BLOCKCHIAN_NODE_INFO}'
envsubst ${NODEVAR} < ${weid_config_tpl} >${weid_config}

Expand Down
254 changes: 254 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master, develop, release/** ]

jobs:
weid-java-sdk-ci:
runs-on: ubuntu-18.04
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 3
- name: Verify MySQL connection and create CI DB
run: |
sudo systemctl start mysql.service
sudo apt-get install -y mysql-client
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'CREATE DATABASE IF NOT EXISTS cidb;'
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'show databases;'
- name: Prepare blockchain nodes and certificates
run: |
mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.3.0/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -l "127.0.0.1:2" -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco
cd ..
cp ./fisco/nodes/127.0.0.1/sdk/* ./.ci/
- name: Prepare gradle
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 5.4.1
- name: source-code deployment
run: |
export NODE_IP=127.0.0.1:20200
export NODE2_IP=127.0.0.1:20201
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
chmod u+x .ci/script/build-ci.sh
.ci/script/build-ci.sh 127.0.0.1:3306 cidb root root
- name: Run CI
run: |
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
gradle check -i
gradle jacocoTestReport
bash <(curl -s https://codecov.io/bash)
- name: Download failed log (if any)
if: ${{ failure() }}
uses: actions/upload-artifact@v1
with:
name: sdk-log
path: /home/runner/work/WeIdentity/WeIdentity/build/reports/
weid-sample-ci:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-18.04
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 3
- name: Verify MySQL connection and create CI DB
run: |
sudo systemctl start mysql.service
sudo apt-get install -y mysql-client
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'CREATE DATABASE IF NOT EXISTS cidb;'
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'show databases;'
- name: Prepare blockchain nodes and certificates
run: |
mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.3.0/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -l "127.0.0.1:2" -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco
cd ..
cp ./fisco/nodes/127.0.0.1/sdk/* ./.ci/
- name: Prepare gradle
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 5.4.1
- name: source-code deployment
run: |
export NODE_IP=127.0.0.1:20200
export NODE2_IP=127.0.0.1:20201
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
chmod u+x .ci/script/build-ci.sh
.ci/script/build-ci.sh 127.0.0.1:3306 cidb root root
- name: Checkout and prepare
run: |
git clone https://github.com/WeBankFinTech/weid-sample.git
cd weid-sample
git checkout develop
cd ..
mkdir -p weid-sample/dependencies
cp dist/app/*.jar weid-sample/dependencies/weid-java-sdk-pipeline.jar
mkdir -p weid-sample/libs
cp dist/lib/*.jar weid-sample/libs/
cp ecdsa_key weid-sample/keys/priv/
cp src/main/resources/fisco.properties weid-sample/src/main/resources/
cp src/main/resources/weidentity.properties weid-sample/src/main/resources/
cp .ci/ca.crt weid-sample/src/main/resources/
cp .ci/node.crt weid-sample/src/main/resources/
cp .ci/node.key weid-sample/src/main/resources/
- name: Run CI
run: |
cd weid-sample
chmod u+x *.sh
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
export NODE_IP=127.0.0.1:20200
export NODE2_IP=127.0.0.1:20201
./build.sh
./sample-ci.sh
- name: Download failed log (if any)
if: ${{ failure() }}
uses: actions/upload-artifact@v1
with:
name: sample-log
path: /home/runner/work/WeIdentity/WeIdentity/weid-sample/build/reports/
weid-http-service-ci:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-18.04
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 3
- name: Verify MySQL connection and create CI DB
run: |
sudo systemctl start mysql.service
sudo apt-get install -y mysql-client
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'CREATE DATABASE IF NOT EXISTS cidb;'
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'show databases;'
- name: Prepare blockchain nodes and certificates
run: |
mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.3.0/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -l "127.0.0.1:2" -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco
cd ..
cp ./fisco/nodes/127.0.0.1/sdk/* ./.ci/
- name: Prepare gradle
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 5.4.1
- name: source-code deployment
run: |
export NODE_IP=127.0.0.1:20200
export NODE2_IP=127.0.0.1:20201
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
chmod u+x .ci/script/build-ci.sh
.ci/script/build-ci.sh 127.0.0.1:3306 cidb root root
- name: Checkout and prepare
run: |
git clone https://github.com/WeBankFinTech/weid-http-service.git
cp dist/app/*.jar weid-http-service/dependencies/weid-java-sdk-pipeline.jar
mkdir -p weid-http-service/libs
cp dist/lib/* weid-http-service/libs
cp ecdsa_key weid-http-service/src/main/resources/ && cp ecdsa_key weid-http-service/src/test/resources/ && cp ecdsa_key weid-http-service/keys/priv/ && cp ecdsa_key weid-http-service/dist/keys/priv/
cp src/main/resources/fisco.properties weid-http-service/src/main/resources/
cp src/main/resources/fisco.properties weid-http-service/src/test/resources/
cp src/main/resources/weidentity.properties weid-http-service/src/main/resources/
cp src/main/resources/weidentity.properties weid-http-service/src/test/resources/
cp .ci/ca.crt weid-http-service/src/test/resources/
cp .ci/ca.crt weid-http-service/src/main/resources/
cp .ci/node.crt weid-http-service/src/test/resources/
cp .ci/node.crt weid-http-service/src/main/resources/
cp .ci/node.key weid-http-service/src/test/resources/
cp .ci/node.key weid-http-service/src/main/resources/
- name: Run CI
run: |
cd weid-http-service/
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.6.1/bin:$PATH
ls -ll libs
gradle clean build -i -x test
- name: Download failed log (if any)
if: ${{ failure() }}
uses: actions/upload-artifact@v1
with:
name: http-service-log
path: /home/runner/work/WeIdentity/WeIdentity/weid-http-service/build/reports/
weid-build-tools-ci:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-18.04
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 3
- name: Verify MySQL connection and create CI DB
run: |
sudo systemctl start mysql.service
sudo apt-get install -y mysql-client
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'CREATE DATABASE IF NOT EXISTS cidb;'
mysql --host=127.0.0.1 --port=3306 --user=root --password=root -e 'show databases;'
- name: Prepare blockchain nodes and certificates
run: |
mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.3.0/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -l "127.0.0.1:2" -p 30300,20200,8545
bash nodes/127.0.0.1/start_all.sh
ps -ef | grep -v grep | grep fisco
cd ..
cp ./fisco/nodes/127.0.0.1/sdk/* ./.ci/
- name: Prepare gradle
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 5.4.1
- name: source-code deployment
run: |
export NODE_IP=127.0.0.1:20200
export NODE2_IP=127.0.0.1:20201
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
chmod u+x .ci/script/build-ci.sh
.ci/script/build-ci.sh 127.0.0.1:3306 cidb root root
- name: Checkout and prepare
run: |
git clone https://github.com/WeBankFinTech/weid-build-tools.git
mkdir -p weid-build-tools/dependencies
cp dist/app/*.jar weid-build-tools/dependencies/weid-java-sdk-pipeline.jar
wget https://github.com/FISCO-BCOS/fisco-solc/raw/master/fisco-solc-ubuntu
sudo cp fisco-solc-ubuntu /usr/bin/fisco-solc
sudo chmod u+x /usr/bin/fisco-solc
cp .ci/ca.crt weid-build-tools/resources/
cp .ci/node.crt weid-build-tools/resources/
cp .ci/node.key weid-build-tools/resources/
- name: Run CI
run: |
cd weid-build-tools/
export PATH=/home/runner/gradle-provision-tmpdir/installs/gradle-5.4.1/bin:$PATH
sed -i -e '$a\org_id=test' run.config
sed -i -e '$a\blockchain_address=127.0.0.1:20200' run.config
sed -i -e '$a\mysql_address=127.0.0.1:3306' run.config
sed -i -e '$a\mysql_database=cidb' run.config
sed -i -e '$a\mysql_username=root' run.config
sed -i -e '$a\mysql_password=root' run.config
chmod u+x compile.sh
./compile.sh
chmod u+x deploy.sh
./deploy.sh
cp ./script/build_tools_ci.sh .
chmod u+x build_tools_ci.sh
./build_tools_ci.sh
- name: Download failed log (if any)
if: ${{ failure() }}
uses: actions/upload-artifact@v1
with:
name: build-tools-log
path: /home/runner/work/WeIdentity/WeIdentity/weid-build-tools/build/reports/
8 changes: 1 addition & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
sudo: false
dist: trusty

# blocklist


# safelist
# With the readiness of github action, now travis CI only needs to run on master
branches:
only:
- master
- develop
- /^v\d+\.\d+\.\d+$/
- /^release.*/

language: java
jdk:
Expand Down

0 comments on commit 82e5006

Please sign in to comment.