feat(indy-test-ledger): add helper class for indy ledger #1548
Workflow file for this run
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
# Copyright IBM Corp. All Rights Reserved. | |
# | |
# SPDX-License-Identifier: CC-BY-4.0 | |
# This is a basic workflow to help you get started with Actions | |
name: Test Data Sharing | |
env: | |
NODEJS_VERSION: v18.18.2 | |
# 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 ] | |
pull_request: | |
branches: [ main ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
check_code_changed: | |
outputs: | |
status: ${{ steps.changes.outputs.weaver_code_changed }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3.5.2 | |
- uses: dorny/paths-filter@v2.11.1 | |
id: changes | |
with: | |
filters: | | |
weaver_code_changed: | |
- './weaver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)' | |
- '.github/workflows/test_weaver-data-sharing.yaml' | |
data-sharing: | |
needs: check_code_changed | |
if: ${{ false && needs.check_code_changed.outputs.status == 'true' }} | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3.5.2 | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: '8' | |
distribution: 'adopt' | |
- name: Set up Go | |
uses: actions/setup-go@v4.0.0 | |
with: | |
go-version: '1.20.2' | |
- name: Use Node.js ${{ env.NODEJS_VERSION }} | |
uses: actions/setup-node@v3.6.0 | |
with: | |
node-version: ${{ env.NODEJS_VERSION }} | |
# CORDA NETWORK | |
- name: Generate github.properties | |
run: | | |
echo "Using ${GITHUB_ACTOR} user." | |
echo "username=${GITHUB_ACTOR}" >> github.properties | |
echo "password=${{ secrets.GITHUB_TOKEN }}" >> github.properties | |
echo "url=https://maven.pkg.github.com/${GITHUB_ACTOR}/cacti" >> github.properties | |
echo "Using ${GITHUB_ACTOR} user." | |
echo "username=${GITHUB_ACTOR}" >> github.main.properties | |
echo "password=${{ secrets.GITHUB_TOKEN }}" >> github.main.properties | |
echo "url=https://maven.pkg.github.com/hyperledger/cacti" >> github.main.properties | |
./scripts/get-cordapps.sh || mv github.main.properties github.properties | |
cat github.properties | |
working-directory: weaver/tests/network-setups/corda | |
- name: Start Corda Network | |
run: | | |
sed -i "/docker logs corda_partya_1 -f/"' s/^/#/' "scripts/start-nodes.sh" | |
make start &> corda-net.out & | |
working-directory: weaver/tests/network-setups/corda | |
# FABRIC NETWORK | |
- name: Start Fabric Network | |
run: make start-interop PROFILE='2-nodes' | |
working-directory: weaver/tests/network-setups/fabric/dev | |
- name: Corda Network logs | |
run: | | |
cat tests/network-setups/corda/corda-net.out | |
docker logs corda_partya_1 | |
working-directory: weaver | |
# RELAY | |
- name: Edit Relay docker compose | |
run: make convert-compose-method2 | |
working-directory: weaver/core/relay | |
- name: Start Relay for network1 | |
run: make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.n1' | |
working-directory: weaver/core/relay | |
- name: Start Relay for network2 | |
run: make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.n2' | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network | |
run: make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.corda' | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network2 | |
run: make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.corda2' | |
working-directory: weaver/core/relay | |
# FABRIC DRIVER | |
- name: Setup Fabric Driver .env | |
run: | | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet-envs/.env.n1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet-envs/.env.n2 | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network1 | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.n1' NETWORK_NAME=$(grep NETWORK_NAME docker-testnet-envs/.env.n1 | cut -d '=' -f 2) | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network2 | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.n2' NETWORK_NAME=$(grep NETWORK_NAME docker-testnet-envs/.env.n2 | cut -d '=' -f 2) | |
working-directory: weaver/core/drivers/fabric-driver | |
# IIN AGENT | |
- name: Setup Fabric IIN Env | |
run: | | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n2.org2 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n2.org2 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n2.org2 | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network1 | |
run: | | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n1.org1' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n1.org1 | cut -d '=' -f 2) | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n1.org2' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n1.org2 | cut -d '=' -f 2) | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network2 | |
run: | | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n2.org1' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n2.org1 | cut -d '=' -f 2) | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n2.org2' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n2.org2 | cut -d '=' -f 2) | |
working-directory: weaver/core/identity-management/iin-agent | |
# CORDA DRIVER | |
- name: Start Corda Driver | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.corda' | |
working-directory: weaver/core/drivers/corda-driver | |
- name: Start Corda_Network2 Driver | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.corda2' | |
working-directory: weaver/core/drivers/corda-driver | |
# FABRIC CLI | |
- name: Setup Fabric CLI .npmrc | |
run: | | |
cp .npmrc.template .npmrc | |
sed -i "s/<personal-access-token>/${{ secrets.GITHUB_TOKEN }}/g" .npmrc | |
cat .npmrc | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Build Fabric CLI | |
run: | | |
npm install --global yarn | |
make build | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Setup Fabric CLI Config | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp config.template.json config.json | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" config.json | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Setup Fabric CLI ENV | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp .env.template .env | |
sed -i "s/CHAINCODE_PATH=.*/CHAINCODE_PATH=\.\/chaincode\.json/g" .env | |
./bin/fabric-cli env set MEMBER_CREDENTIAL_FOLDER ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/src/data/credentials_docker | |
./bin/fabric-cli env set CONFIG_PATH ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/config.json | |
cat .env | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric CLI Configure ALL | |
run: ./bin/fabric-cli configure all network1 network2 --num-orgs=2 | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric Sync Membership using IIN Agent | |
run: | | |
./bin/fabric-cli configure membership --local-network=network1 --target-network=network2 --iin-agent-endpoint=localhost:9500 | |
sleep 30 | |
docker logs iin-agent-Org1MSP-network1 | |
docker logs iin-agent-Org1MSP-network2 | |
./bin/fabric-cli configure membership --local-network=network2 --target-network=network1 --iin-agent-endpoint=localhost:9501 | |
sleep 30 | |
docker logs iin-agent-Org1MSP-network1 | |
docker logs iin-agent-Org1MSP-network2 | |
working-directory: weaver/samples/fabric/fabric-cli | |
# CORDA CLIENT | |
- name: Corda CLI Initialize Vault | |
run: make initialise-vault-docker | |
working-directory: weaver/samples/corda/corda-simple-application | |
- name: Data Transfer Corda Client Tests | |
run: | | |
COUNT=0 | |
TOTAL=8 | |
# CORDA-CORDA2 | |
./clients/build/install/clients/bin/clients request-state localhost:9081 relay-corda2:9082/Corda_Network2/corda_network2_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA2-CORDA | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients request-state localhost:9082 relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients get-state C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC1 | |
./clients/build/install/clients/bin/clients request-state localhost:9081 relay-network1:9080/network1/mychannel:simplestate:Read:a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC2 | |
./clients/build/install/clients/bin/clients request-state localhost:9081 relay-network2:9083/network2/mychannel:simplestate:Read:Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/corda/corda-simple-application | |
# FABRIC CLI | |
- name: Data Transfer Fabric CLI Tests | |
run: | | |
COUNT=0 | |
TOTAL=12 | |
# FABRIC2 - FABRIC1 | |
cp chaincode.json.template chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP relay-network1:9080/network1/mychannel:simplestate:Read:a &> tmp.out | |
tail -n 1 tmp.out | grep "Args: a, Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["a"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"Arcturus\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP relay-network2:9083/network2/mychannel:simplestate:Read:Arcturus &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Arcturus, 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - FABRIC1 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"Arcturus\"/\"args\"\: \[\"b\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP --e2e-confidentiality=true relay-network1:9080/network1/mychannel:simplestate:Read:b &> tmp.out | |
tail -n 1 tmp.out | grep "Args: b, Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["b"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"b\"/\"args\"\: \[\"Betelgeuse\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP --e2e-confidentiality=true relay-network2:9083/network2/mychannel:simplestate:Read:Betelgeuse &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Betelgeuse, 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Betelgeuse"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Arcturus"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"H\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --sign=true --requesting-org=Org1MSP relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:H --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: H, \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["H"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"C\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --sign=true --requesting-org=Org1MSP relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:C --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: C, \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["C"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/fabric/fabric-cli | |
- if: failure() | |
name: DEBUG Logs - corda partya | |
run: docker logs corda_partya_1 | |
- if: failure() | |
name: DEBUG Logs - corda network2 partya | |
run: docker logs corda_network2_partya_1 | |
- if: failure() | |
name: DEBUG Logs - fabric n1 relay | |
run: docker logs relay-network1 | |
- if: failure() | |
name: DEBUG Logs - fabric n2 relay | |
run: docker logs relay-network2 | |
- if: failure() | |
name: DEBUG Logs - corda relay | |
run: docker logs relay-corda | |
- if: failure() | |
name: DEBUG Logs - corda2 relay | |
run: docker logs relay-corda2 | |
- if: failure() | |
name: DEBUG Logs - fabric n1 driver | |
run: docker logs driver-fabric-network1 | |
- if: failure() | |
name: DEBUG Logs - fabric n2 driver | |
run: docker logs driver-fabric-network2 | |
- if: failure() | |
name: DEBUG Logs - corda driver | |
run: docker logs driver-corda-Corda_Network | |
- if: failure() | |
name: DEBUG Logs - corda2 driver | |
run: docker logs driver-corda-Corda_Network2 | |
- if: failure() | |
name: DEBUG Logs - iin agent n1 org1 | |
run: docker logs iin-agent-Org1MSP-network1 | |
- if: failure() | |
name: DEBUG Logs - iin agent n2 org1 | |
run: docker logs iin-agent-Org1MSP-network2 | |
data-sharing-docker-local: | |
needs: check_code_changed | |
if: needs.check_code_changed.outputs.status == 'true' | |
# if: ${{ false }} | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3.5.2 | |
- uses: dorny/paths-filter@v2.11.1 | |
id: changes | |
with: | |
filters: | | |
weaver_code_changed: | |
- './weaver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)' | |
- '.github/workflows/test_weaver-data-sharing.yaml' | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: '8' | |
distribution: 'adopt' | |
- name: Set up Go | |
uses: actions/setup-go@v4.0.0 | |
with: | |
go-version: '1.20.2' | |
- name: Use Node.js ${{ env.NODEJS_VERSION }} | |
uses: actions/setup-node@v3.6.0 | |
with: | |
node-version: ${{ env.NODEJS_VERSION }} | |
- name: Use Protoc 3.15 | |
run: | | |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.15.6/protoc-3.15.6-linux-x86_64.zip | |
unzip protoc-3.15.6-linux-x86_64.zip -d protoc | |
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest | |
# PROTOS | |
- name: Build GO Protos | |
run: | | |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin" | |
make build | |
working-directory: weaver/common/protos-go | |
# PROTOS | |
- name: Build JS Protos | |
run: | | |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin" | |
make build | |
working-directory: weaver/common/protos-js | |
- name: Build Java Protos | |
run: make build | |
working-directory: weaver/common/protos-java-kt | |
# Build Dependencies | |
- name: Build Corda Interop App | |
run: make build-local | |
working-directory: weaver/core/network/corda-interop-app | |
- name: Build Corda Interop SDK | |
run: make build | |
working-directory: weaver/sdks/corda | |
- name: Build Corda SimpleApplication | |
run: make build-local | |
working-directory: weaver/samples/corda/corda-simple-application | |
- name: Build Fabric Interop SDK | |
run: make build-local | |
working-directory: weaver/sdks/fabric/interoperation-node-sdk | |
- name: Build Fabric CLI | |
run: make build-local | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Build Relay | |
run: make build-server-local | |
working-directory: weaver/core/relay | |
- name: Build Fabric Driver | |
run: make build-image-local | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Build Corda Driver | |
run: make image-local | |
working-directory: weaver/core/drivers/corda-driver | |
- name: Build IIN Agent | |
run: make build-image-local | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Corda Network | |
run: | | |
sed -i "/docker logs corda_partya_1 -f/"' s/^/#/' "scripts/start-nodes.sh" | |
make start-local &> corda-net.out & | |
working-directory: weaver/tests/network-setups/corda | |
# FABRIC NETWORK | |
- name: Start Fabric Network | |
run: make start-interop-local PROFILE='2-nodes' | |
working-directory: weaver/tests/network-setups/fabric/dev | |
- name: Corda Network logs | |
run: | | |
cat tests/network-setups/corda/corda-net.out | |
docker logs corda_partya_1 | |
working-directory: weaver | |
# RELAY | |
- name: Edit Relay docker compose | |
run: make convert-compose-method2 | |
working-directory: weaver/core/relay | |
- name: Start Relay for network1 | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-relay-server#g" docker/testnet-envs/.env.n1 | |
make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.n1' | |
working-directory: weaver/core/relay | |
- name: Start Relay for network2 | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-relay-server#g" docker/testnet-envs/.env.n2 | |
make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.n2' | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-relay-server#g" docker/testnet-envs/.env.corda | |
make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.corda' | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network2 | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-relay-server#g" docker/testnet-envs/.env.corda2 | |
make start-server COMPOSE_ARG='--env-file docker/testnet-envs/.env.corda2' | |
working-directory: weaver/core/relay | |
# FABRIC DRIVER | |
- name: Setup Fabric Driver .env | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-driver-fabric#g" docker-testnet-envs/.env.n1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet-envs/.env.n1 | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-driver-fabric#g" docker-testnet-envs/.env.n2 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet-envs/.env.n2 | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network1 | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.n1' NETWORK_NAME=$(grep NETWORK_NAME docker-testnet-envs/.env.n1 | cut -d '=' -f 2) | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network2 | |
run: make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.n2' NETWORK_NAME=$(grep NETWORK_NAME docker-testnet-envs/.env.n2 | cut -d '=' -f 2) | |
working-directory: weaver/core/drivers/fabric-driver | |
# IIN AGENT | |
- name: Setup Fabric IIN Env | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-iin-agent#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n1.org1 | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-iin-agent#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n1.org2 | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-iin-agent#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n2.org1 | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-iin-agent#g" docker-testnet/envs/.env.n2.org2 | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" docker-testnet/envs/.env.n2.org2 | |
sed -i "s#^AUTO_SYNC=true#AUTO_SYNC=false#g" docker-testnet/envs/.env.n2.org2 | |
sed -i "s#^DNS_CONFIG_PATH=.*#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig-2-nodes.json#g" docker-testnet/envs/.env.n2.org2 | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network1 | |
run: | | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n1.org1' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n1.org1 | cut -d '=' -f 2) | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n1.org2' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n1.org2 | cut -d '=' -f 2) | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network2 | |
run: | | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n2.org1' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n2.org1 | cut -d '=' -f 2) | |
make deploy COMPOSE_ARG='--env-file docker-testnet/envs/.env.n2.org2' DLT_SPECIFIC_DIR=$(grep DLT_SPECIFIC_DIR docker-testnet/envs/.env.n2.org2 | cut -d '=' -f 2) | |
working-directory: weaver/core/identity-management/iin-agent | |
# CORDA DRIVER | |
- name: Start Corda Driver | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-driver-corda#g" docker-testnet-envs/.env.corda | |
make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.corda' | |
working-directory: weaver/core/drivers/corda-driver | |
- name: Start Corda_Network2 Driver | |
run: | | |
sed -i "s#^DOCKER_IMAGE_NAME=.*#DOCKER_IMAGE_NAME=cacti-weaver-driver-corda#g" docker-testnet-envs/.env.corda2 | |
make deploy COMPOSE_ARG='--env-file docker-testnet-envs/.env.corda2' | |
working-directory: weaver/core/drivers/corda-driver | |
# FABRIC CLI | |
- name: Setup Fabric CLI Config | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp config.template.json config.json | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" config.json | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Setup Fabric CLI ENV | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp .env.template .env | |
sed -i "s/CHAINCODE_PATH=.*/CHAINCODE_PATH=\.\/chaincode\.json/g" .env | |
./bin/fabric-cli env set MEMBER_CREDENTIAL_FOLDER ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/src/data/credentials_docker | |
./bin/fabric-cli env set CONFIG_PATH ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/config.json | |
cat .env | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric CLI Configure ALL | |
run: ./bin/fabric-cli configure all network1 network2 --num-orgs=2 | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric Sync Membership using IIN Agent | |
run: | | |
./bin/fabric-cli configure membership --local-network=network1 --target-network=network2 --iin-agent-endpoint=localhost:9500 | |
sleep 30 | |
docker logs --tail 5 iin-agent-Org1MSP-network1 | |
docker logs --tail 5 iin-agent-Org1MSP-network2 | |
./bin/fabric-cli configure membership --local-network=network2 --target-network=network1 --iin-agent-endpoint=localhost:9501 | |
sleep 30 | |
docker logs --tail 5 iin-agent-Org1MSP-network1 | |
docker logs --tail 5 iin-agent-Org1MSP-network2 | |
working-directory: weaver/samples/fabric/fabric-cli | |
# CORDA CLIENT | |
- name: Corda CLI Initialize Vault | |
run: make initialise-vault-docker | |
working-directory: weaver/samples/corda/corda-simple-application | |
- name: Data Transfer Corda Client Tests | |
run: | | |
COUNT=0 | |
TOTAL=8 | |
# CORDA-CORDA2 | |
./clients/build/install/clients/bin/clients request-state --wkey=H localhost:9081 relay-corda2:9082/Corda_Network2/corda_network2_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA2-CORDA | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients request-state --wkey=C localhost:9082 relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients get-state C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC1 | |
./clients/build/install/clients/bin/clients request-state --wkey=a localhost:9081 relay-network1:9080/network1/mychannel:simplestate:Read:a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC2 | |
./clients/build/install/clients/bin/clients request-state --wkey=Arcturus localhost:9081 relay-network2:9083/network2/mychannel:simplestate:Read:Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/corda/corda-simple-application | |
# FABRIC CLI | |
- name: Data Transfer Fabric CLI Tests | |
run: | | |
COUNT=0 | |
TOTAL=12 | |
# FABRIC2 - FABRIC1 | |
cp chaincode.json.template chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP relay-network1:9080/network1/mychannel:simplestate:Read:a &> tmp.out | |
tail -n 1 tmp.out | grep "Args: a, Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["a"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"Arcturus\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP relay-network2:9083/network2/mychannel:simplestate:Read:Arcturus &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Arcturus, 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Arcturus"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - FABRIC1 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"Arcturus\"/\"args\"\: \[\"b\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP --e2e-confidentiality=true relay-network1:9080/network1/mychannel:simplestate:Read:b &> tmp.out | |
tail -n 1 tmp.out | grep "Args: b, Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["b"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"b\"/\"args\"\: \[\"Betelgeuse\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP --e2e-confidentiality=true relay-network2:9083/network2/mychannel:simplestate:Read:Betelgeuse &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Betelgeuse, 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Betelgeuse"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"H\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --sign=true --requesting-org=Org1MSP relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:H --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: H, \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["H"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"C\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --sign=true --requesting-org=Org1MSP relay-corda:9081/Corda_Network/corda_partya_1:10003#com.cordaSimpleApplication.flow.GetStateByKey:C --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: C, \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["C"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/fabric/fabric-cli | |
- if: failure() | |
name: DEBUG Logs - corda partya | |
run: docker logs corda_partya_1 | |
- if: failure() | |
name: DEBUG Logs - corda network2 partya | |
run: docker logs corda_network2_partya_1 | |
- if: failure() | |
name: DEBUG Logs - fabric n1 relay | |
run: docker logs relay-network1 | |
- if: failure() | |
name: DEBUG Logs - fabric n2 relay | |
run: docker logs relay-network2 | |
- if: failure() | |
name: DEBUG Logs - corda relay | |
run: docker logs relay-corda | |
- if: failure() | |
name: DEBUG Logs - corda2 relay | |
run: docker logs relay-corda2 | |
- if: failure() | |
name: DEBUG Logs - fabric n1 driver | |
run: docker logs driver-fabric-network1 | |
- if: failure() | |
name: DEBUG Logs - fabric n2 driver | |
run: docker logs driver-fabric-network2 | |
- if: failure() | |
name: DEBUG Logs - corda driver | |
run: docker logs driver-corda-Corda_Network | |
- if: failure() | |
name: DEBUG Logs - corda2 driver | |
run: docker logs driver-corda-Corda_Network2 | |
- if: failure() | |
name: DEBUG Logs - iin agent n1 org1 | |
run: docker logs iin-agent-Org1MSP-network1 | |
- if: failure() | |
name: DEBUG Logs - iin agent n2 org1 | |
run: docker logs iin-agent-Org1MSP-network2 | |
data-sharing-local: | |
needs: check_code_changed | |
if: needs.check_code_changed.outputs.status == 'true' | |
# if: ${{ false }} | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3.5.2 | |
- uses: dorny/paths-filter@v2.11.1 | |
id: changes | |
with: | |
filters: | | |
weaver_code_changed: | |
- './weaver/**!(*.md|*.css|*.html|*.jpg|*.jpeg|*.png)' | |
- '.github/workflows/test_weaver-data-sharing.yaml' | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3.11.0 | |
with: | |
java-version: '8' | |
distribution: 'adopt' | |
- name: Set up Go | |
uses: actions/setup-go@v4.0.0 | |
with: | |
go-version: '1.20.2' | |
- name: Use Node.js ${{ env.NODEJS_VERSION }} | |
uses: actions/setup-node@v3.6.0 | |
with: | |
node-version: ${{ env.NODEJS_VERSION }} | |
- name: Install RUST Toolchain minimal stable with clippy and rustfmt | |
uses: actions-rs/toolchain@v1.0.6 | |
with: | |
profile: minimal | |
toolchain: stable | |
components: rustfmt, clippy | |
- name: Get Latest Relay Dependencies | |
run: | | |
make protos-local | |
cargo update -p nom | |
cargo update -p lexical-core | |
working-directory: weaver/core/relay | |
- name: Use Protoc 3.15 | |
run: | | |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.15.6/protoc-3.15.6-linux-x86_64.zip | |
unzip protoc-3.15.6-linux-x86_64.zip -d protoc | |
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest | |
# PROTOS | |
- name: Build GO Protos | |
run: | | |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin" | |
make build | |
working-directory: weaver/common/protos-go | |
# PROTOS | |
- name: Build JS Protos | |
run: | | |
export PATH="$PATH:${GITHUB_WORKSPACE}/protoc/bin" | |
make build | |
working-directory: weaver/common/protos-js | |
- name: Build Java Protos | |
run: make build | |
working-directory: weaver/common/protos-java-kt | |
# Build Dependencies | |
- name: Build Corda Interop App | |
run: make build-local | |
working-directory: weaver/core/network/corda-interop-app | |
- name: Build Corda Interop SDK | |
run: make build | |
working-directory: weaver/sdks/corda | |
- name: Build Corda SimpleApplication | |
run: make build-local | |
working-directory: weaver/samples/corda/corda-simple-application | |
- name: Build Fabric Interop SDK | |
run: make build-local | |
working-directory: weaver/sdks/fabric/interoperation-node-sdk | |
- name: Build Fabric CLI | |
run: make build-local | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Build Relay | |
run: make | |
working-directory: weaver/core/relay | |
- name: Build Fabric Driver | |
run: make build-local | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Build Corda Driver | |
run: make build-local | |
working-directory: weaver/core/drivers/corda-driver | |
- name: Build IIN Agent | |
run: make build-local | |
working-directory: weaver/core/identity-management/iin-agent | |
# CORDA NETWORK | |
- name: Start Corda Network | |
run: | | |
sed -i "/docker logs corda_partya_1 -f/"' s/^/#/' "scripts/start-nodes.sh" | |
make start-local &> corda-net.out & | |
working-directory: weaver/tests/network-setups/corda | |
# FABRIC NETWORK | |
- name: Start Fabric Network | |
run: make start-interop-local | |
working-directory: weaver/tests/network-setups/fabric/dev | |
- name: Corda Network logs | |
run: | | |
cat tests/network-setups/corda/corda-net.out | |
docker logs corda_partya_1 | |
working-directory: weaver | |
# RELAY | |
- name: Start Relay for network1 | |
run: RELAY_CONFIG=config/Fabric_Relay.toml cargo run --bin server &> relay-n1.out & | |
working-directory: weaver/core/relay | |
- name: Start Relay for network2 | |
run: RELAY_CONFIG=config/Fabric_Relay2.toml cargo run --bin server &> relay-n2.out & | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network | |
run: RELAY_CONFIG=config/Corda_Relay.toml cargo run --bin server &> relay-corda.out & | |
working-directory: weaver/core/relay | |
- name: Start Relay for Corda_Network2 | |
run: RELAY_CONFIG=config/Corda_Relay2.toml cargo run --bin server &> relay-corda2.out & | |
working-directory: weaver/core/relay | |
# FABRIC DRIVER | |
- name: Setup Fabric Driver .env | |
run: | | |
cp .env.template .env | |
CCP_PATH=${GITHUB_WORKSPACE}/weaver/tests/network-setups/fabric/shared/network1/peerOrganizations/org1.network1.com/connection-org1.json | |
sed -i "s#path_to_connection_profile#${CCP_PATH}#g" .env | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network1 | |
run: npm run dev &> fdriver-n1.out & | |
working-directory: weaver/core/drivers/fabric-driver | |
- name: Start Fabric Driver for network2 | |
run: CONNECTION_PROFILE=${GITHUB_WORKSPACE}/weaver/tests/network-setups/fabric/shared/network2/peerOrganizations/org1.network2.com/connection-org1.json NETWORK_NAME=network2 RELAY_ENDPOINT=localhost:9083 DRIVER_ENDPOINT=localhost:9095 npm run dev &> fdriver-n2.out & | |
working-directory: weaver/core/drivers/fabric-driver | |
# IIN AGENT | |
- name: Setup Fabric IIN Config | |
run: | | |
# FABRIC CONFIG | |
cp src/fabric-ledger/config.json.template src/fabric-ledger/config-n1.json | |
CCP_PATH=${GITHUB_WORKSPACE}/weaver/tests/network-setups/fabric/shared/network1/peerOrganizations/org1.network1.com/connection-org1.json | |
sed -i "s#<path-to-connection-profile>#${CCP_PATH}#g" src/fabric-ledger/config-n1.json | |
cat src/fabric-ledger/config-n1.json | |
cp src/fabric-ledger/config.json.template src/fabric-ledger/config-n2.json | |
CCP_PATH=${GITHUB_WORKSPACE}/weaver/tests/network-setups/fabric/shared/network2/peerOrganizations/org1.network2.com/connection-org1.json | |
sed -i "s#<path-to-connection-profile>#${CCP_PATH}#g" src/fabric-ledger/config-n2.json | |
cat src/fabric-ledger/config-n2.json | |
# DNS CONFIG | |
sed -i "s#iin-agent-Org1MSP-network1#localhost#g" docker-testnet/configs/dnsconfig.json | |
sed -i "s#iin-agent-Org1MSP-network2#localhost#g" docker-testnet/configs/dnsconfig.json | |
cat docker-testnet/configs/dnsconfig.json | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Setup Fabric IIN Env | |
run: | | |
cp .env.template .env | |
sed -i "s#<name-of-iin-agent/org-name>#Org1MSP#g" .env | |
sed -i "s#^DLT_TYPE=.*#DLT_TYPE=fabric#g" .env | |
sed -i "s#<weaver-contract-name>#interop#g" .env | |
sed -i "s#^DNS_CONFIG_PATH=#DNS_CONFIG_PATH=./docker-testnet/configs/dnsconfig.json#g" .env | |
sed -i "s#^SECURITY_DOMAIN_CONFIG_PATH=#SECURITY_DOMAIN_CONFIG_PATH=./docker-testnet/configs/security-domain-config.json#g" .env | |
sed -i "s#^CONFIG_PATH=#CONFIG_PATH=./src/fabric-ledger/config-n1.json#g" .env | |
sed -i "s#^AUTO_SYNC=#AUTO_SYNC=false#g" .env | |
cat .env | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network1 | |
run: npm run dev &> iinagent-n1.out & | |
working-directory: weaver/core/identity-management/iin-agent | |
- name: Start Fabric IIN Agent for network2 | |
run: IIN_AGENT_ENDPOINT=localhost:9501 SECURITY_DOMAIN=network2 CONFIG_PATH=./src/fabric-ledger/config-n2.json npm run dev &> iinagent-n2.out & | |
working-directory: weaver/core/identity-management/iin-agent | |
# CORDA DRIVER | |
- name: Start Corda_Network Driver | |
run: ./build/install/driver-corda/bin/driver-corda &> corda-driver.out & | |
working-directory: weaver/core/drivers/corda-driver | |
- name: Start Corda_Network2 Driver | |
run: DRIVER_PORT=9098 ./build/install/driver-corda/bin/driver-corda &> corda2-driver.out & | |
working-directory: weaver/core/drivers/corda-driver | |
# FABRIC CLI | |
- name: Setup Fabric CLI Config | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp config.template.json config.json | |
sed -i "s#<PATH-TO-WEAVER>#${GITHUB_WORKSPACE}/weaver#g" config.json | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Setup Fabric CLI ENV | |
run: | | |
echo ${GITHUB_WORKSPACE} | |
cp .env.template .env | |
sed -i "s/CHAINCODE_PATH=.*/CHAINCODE_PATH=\.\/chaincode\.json/g" .env | |
./bin/fabric-cli env set MEMBER_CREDENTIAL_FOLDER ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/src/data/credentials | |
./bin/fabric-cli env set CONFIG_PATH ${GITHUB_WORKSPACE}/weaver/samples/fabric/fabric-cli/config.json | |
cat .env | |
cp chaincode.json.template chaincode.json | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric CLI Configure ALL | |
run: ./bin/fabric-cli configure all network1 network2 | |
working-directory: weaver/samples/fabric/fabric-cli | |
- name: Fabric Sync Membership using IIN Agent | |
run: | | |
./bin/fabric-cli configure membership --local-network=network1 --target-network=network2 --iin-agent-endpoint=localhost:9500 | |
sleep 10 | |
tail -5 ../../../core/identity-management/iin-agent/iinagent-n1.out | |
./bin/fabric-cli configure membership --local-network=network2 --target-network=network1 --iin-agent-endpoint=localhost:9501 | |
sleep 10 | |
tail -5 ../../../core/identity-management/iin-agent/iinagent-n2.out | |
working-directory: weaver/samples/fabric/fabric-cli | |
# CORDA CLIENT | |
- name: Corda CLI Initialize Vault | |
run: make initialise-vault | |
working-directory: weaver/samples/corda/corda-simple-application | |
- name: Data Transfer Corda Client Tests | |
run: | | |
COUNT=0 | |
TOTAL=8 | |
# CORDA-CORDA2 | |
./clients/build/install/clients/bin/clients request-state --wkey=H localhost:9081 localhost:9082/Corda_Network2/localhost:30006#com.cordaSimpleApplication.flow.GetStateByKey:H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state H 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=H, value=\[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA2-CORDA | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients request-state --wkey=C localhost:9082 localhost:9081/Corda_Network/localhost:10006#com.cordaSimpleApplication.flow.GetStateByKey:C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
NETWORK_NAME=Corda_Network2 CORDA_PORT=30006 ./clients/build/install/clients/bin/clients get-state C 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=C, value=\[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC1 | |
./clients/build/install/clients/bin/clients request-state --wkey=a localhost:9081 localhost:9080/network1/mychannel:simplestate:Read:a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state a 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=a, value=Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# CORDA - FABRIC2 | |
./clients/build/install/clients/bin/clients request-state --wkey=Arcturus localhost:9081 localhost:9083/network2/mychannel:simplestate:Read:Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./clients/build/install/clients/bin/clients get-state Arcturus 1> tmp.out | |
cat tmp.out | grep "SimpleState(key=Arcturus, value=17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/corda/corda-simple-application | |
# FABRIC CLI | |
- name: Data Transfer Fabric CLI Tests | |
run: | | |
COUNT=0 | |
TOTAL=12 | |
# FABRIC2 - FABRIC1 | |
cp chaincode.json.template chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP localhost:9080/network1/mychannel:simplestate:Read:a &> tmp.out | |
tail -n 1 tmp.out | grep "Args: a, Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["a"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Arcturus" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - FABRIC1 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"b\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --requesting-org=Org1MSP --e2e-confidentiality=true localhost:9080/network1/mychannel:simplestate:Read:b &> tmp.out | |
tail -n 1 tmp.out | grep "Args: b, Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["b"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: Betelgeuse" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 | |
sed -i "s/\"args\"\: \[\"b\"/\"args\"\: \[\"Arcturus\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP localhost:9083/network2/mychannel:simplestate:Read:Arcturus &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Arcturus, 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Arcturus"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 17.671" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - FABRIC2 - CONFIDENTIAL | |
sed -i "s/\"args\"\: \[\"Arcturus\"/\"args\"\: \[\"Betelgeuse\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --requesting-org=Org1MSP --e2e-confidentiality=true localhost:9083/network2/mychannel:simplestate:Read:Betelgeuse &> tmp.out | |
tail -n 1 tmp.out | grep "Args: Betelgeuse, 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["Betelgeuse"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: 617.1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC1 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"H\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network1 --sign=true --requesting-org=Org1MSP localhost:9081/Corda_Network/localhost:10006#com.cordaSimpleApplication.flow.GetStateByKey:H --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: H, \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["H"]' --local-network=network1 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=H, value=1" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# FABRIC2 - CORDA | |
cp chaincode.json.template chaincode.json | |
sed -i "s/\"args\"\: \[\"a\"/\"args\"\: \[\"C\"/g" chaincode.json | |
./bin/fabric-cli interop --local-network=network2 --sign=true --requesting-org=Org1MSP localhost:9081/Corda_Network/localhost:10006#com.cordaSimpleApplication.flow.GetStateByKey:C --debug=true --debug=true &> tmp.out | |
tail -n 1 tmp.out | grep "Args: C, \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
./bin/fabric-cli chaincode query mychannel simplestate read '["C"]' --local-network=network2 &> tmp.out | |
tail -n 1 tmp.out | grep "Result from network query: \[SimpleState(key=C, value=20" && COUNT=$(( COUNT + 1 )) && echo "PASS" | |
cat tmp.out | |
# RESULT | |
echo "Passed $COUNT/$TOTAL Tests." | |
if [ $COUNT == $TOTAL ]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
working-directory: weaver/samples/fabric/fabric-cli | |
- if: failure() | |
name: DEBUG Logs - corda partya | |
run: docker logs corda_partya_1 | |
- if: failure() | |
name: DEBUG Logs - corda network2 partya | |
run: docker logs corda_network2_partya_1 | |
- if: failure() | |
name: DEBUG Logs - fabric n1 relay | |
run: cat weaver/core/relay/relay-n1.out | |
- if: failure() | |
name: DEBUG Logs - fabric n2 relay | |
run: cat weaver/core/relay/relay-n2.out | |
- if: failure() | |
name: DEBUG Logs - corda relay | |
run: cat weaver/core/relay/relay-corda.out | |
- if: failure() | |
name: DEBUG Logs - corda2 relay | |
run: cat weaver/core/relay/relay-corda2.out | |
- if: failure() | |
name: DEBUG Logs - fabric n1 driver | |
run: cat weaver/core/drivers/fabric-driver/fdriver-n1.out | |
- if: failure() | |
name: DEBUG Logs - fabric n2 driver | |
run: cat weaver/core/drivers/fabric-driver/fdriver-n2.out | |
- if: failure() | |
name: DEBUG Logs - corda driver | |
run: cat weaver/core/drivers/corda-driver/corda-driver.out | |
- if: failure() | |
name: DEBUG Logs - corda2 driver | |
run: cat weaver/core/drivers/corda-driver/corda2-driver.out | |
- if: failure() | |
name: DEBUG Logs - iin agent n1 org1 | |
run: cat weaver/core/identity-management/iin-agent/iinagent-n1.out | |
- if: failure() | |
name: DEBUG Logs - iin agent n2 org1 | |
run: cat weaver/core/identity-management/iin-agent/iinagent-n2.out |