Run Full Stack Asset Transfer Guide tests on GHA

Signed-off-by: Josh Kneubuhl <jkneubuh@us.ibm.com>
This commit is contained in:
Josh Kneubuhl 2022-11-15 12:24:57 -05:00 committed by Dave Enyeart
parent 38a36c65d3
commit 94a1542782
19 changed files with 137 additions and 200 deletions

49
.github/actions/fsat-setup/action.yaml vendored Normal file
View file

@ -0,0 +1,49 @@
name: Set up the Full Stack Asset Transfer Guide Dependencies
description: Set up the Full Stack Asset Transfer Guide Dependencies
inputs:
node-version:
description: Version of node
default: 16.x
fabric-version:
description: Version of Fabric
default: 2.4.7
just-version:
description: Just Version
default: 1.2.0
k9s-version:
description: k9s Version
default: v0.25.3
runs:
using: "composite"
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node-version }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install k9s
shell: bash
run: |
curl --fail --silent --show-error -L https://github.com/derailed/k9s/releases/download/${{ inputs.k9s-version }}/k9s_Linux_x86_64.tar.gz -o /tmp/k9s_Linux_x86_64.tar.gz
tar -zxf /tmp/k9s_Linux_x86_64.tar.gz -C /usr/local/bin k9s
sudo chown root /usr/local/bin/k9s
sudo chmod 755 /usr/local/bin/k9s
- name: Install just
shell: bash
run: |
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --tag ${{ inputs.just-version }} --to /usr/local/bin
- name: Install weft
shell: bash
run: |
npm install -g @hyperledger-labs/weft
- name: Install fabric CLI
shell: bash
working-directory: full-stack-asset-transfer-guide
run: |
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- -f ${{ inputs.fabric-version }} binary
echo ${PWD}/bin >> $GITHUB_PATH

View file

@ -10,10 +10,9 @@ inputs:
java-version:
description: Version of JDK
default: 11.x
# todo : set fabric target version ...
# fabric-version:
# description: Version of Fabric
# default: 2.5
fabric-version:
description: Version of Fabric
default: 2.4.7
runs:
using: "composite"
@ -34,13 +33,12 @@ runs:
with:
distribution: temurin
java-version: ${{ inputs.java-version }}
# todo: how to cache both gradle and maven? (Better: port maven -> gradle)
cache: gradle
- name: Install fabric CLI
shell: bash
run: |
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- binary
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- -f ${{ inputs.fabric-version }} binary
echo ${PWD}/bin >> $GITHUB_PATH
- name: Pull Fabric Docker Images

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Lint
run-name: ${{ github.actor }} is linting fabric-samples
name: Lint 🎉
run-name: ${{ github.actor }} is linting fabric-samples 🎉
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: REST Sample
run-name: ${{ github.actor }} is testing the REST Sample
name: REST Sample 🐧
run-name: ${{ github.actor }} is testing the REST Sample 🐧
env:
NODE_VER: 16.x

View file

@ -1,58 +0,0 @@
name: Full Stack AppDev E2E Test
run-name: ${{ github.actor }} is running the FSAT E2E Test 🚀
on:
workflow_dispatch:
pull_request:
branches:
- "main"
paths:
- "full-stack-asset-transfer-guide/**"
env:
GO_VER: 1.18.3
NODE_VER: 16.x
K9S_VERSION: v0.25.3
JUST_VERSION: 1.2.0
jobs:
appdev:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VER }}
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VER }}
- name: Install k9s
run: |
curl --fail --silent --show-error -L https://github.com/derailed/k9s/releases/download/${K9S_VERSION}/k9s_Linux_x86_64.tar.gz -o /tmp/k9s_Linux_x86_64.tar.gz
tar -zxf /tmp/k9s_Linux_x86_64.tar.gz -C /usr/local/bin k9s
sudo chown root /usr/local/bin/k9s
sudo chmod 755 /usr/local/bin/k9s
- name: Install just
run: |
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --tag ${JUST_VERSION} --to /usr/local/bin
- name: Install weft
run: |
npm install -g @hyperledger-labs/weft
- name: Install fabric CLI
working-directory: full-stack-asset-transfer-guide
run: |
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh | bash -s -- binary
echo ${PWD}/bin >> $GITHUB_PATH
- name: just test-appdev
working-directory: full-stack-asset-transfer-guide
run: just test-appdev
- run: echo "🍏 This job's status is ${{ job.status }}."

58
.github/workflows/test-fsat.yaml vendored Normal file
View file

@ -0,0 +1,58 @@
name: Full Stack Asset Transfer Guide 🚀
run-name: ${{ github.actor }} is testing the Full Stack Asset Transfer Guide 🚀
on:
workflow_dispatch:
pull_request:
branches:
- "main"
paths:
- "full-stack-asset-transfer-guide/**"
jobs:
ansible:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Full Stack Runtime
uses: ./.github/actions/fsat-setup
- run: just test-ansible
working-directory: full-stack-asset-transfer-guide
appdev:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Full Stack Runtime
uses: ./.github/actions/fsat-setup
- run: just test-appdev
working-directory: full-stack-asset-transfer-guide
chaincode:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Full Stack Runtime
uses: ./.github/actions/fsat-setup
- run: just test-chaincode
working-directory: full-stack-asset-transfer-guide
cloud:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Full Stack Runtime
uses: ./.github/actions/fsat-setup
- run: just test-cloud
working-directory: full-stack-asset-transfer-guide
console:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Full Stack Runtime
uses: ./.github/actions/fsat-setup
- run: just test-console
working-directory: full-stack-asset-transfer-guide

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Basic
run-name: ${{ github.actor }} is running the Test Network Basic tests
name: Test Network Basic 🔎
run-name: ${{ github.actor }} is running the Test Network Basic tests 🔎
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Events
run-name: ${{ github.actor }} is running the Test Network Events tests
name: Test Network Events 💡
run-name: ${{ github.actor }} is running the Test Network Events tests 💡
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Gateway
run-name: ${{ github.actor }} is running the Test Network Gateway tests
name: Test Network Gateway 🖥️
run-name: ${{ github.actor }} is running the Test Network Gateway tests 🖥️
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network HSM
run-name: ${{ github.actor }} is running the Test Network HSM tests
name: Test Network HSM 🍏
run-name: ${{ github.actor }} is running the Test Network HSM tests 🍏
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Kubernetes Test Network
run-name: ${{ github.actor }} is testing the Kubernetes Test Network
name: Kubernetes Test Network 🍒
run-name: ${{ github.actor }} is testing the Kubernetes Test Network 🍒
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Ledger
run-name: ${{ github.actor }} is running the Test Network Ledger tests
name: Test Network Ledger 🥑
run-name: ${{ github.actor }} is running the Test Network Ledger tests 🥑
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Off Chain
run-name: ${{ github.actor }} is running the Test Network Off Chain tests
name: Test Network Off Chain 🍔
run-name: ${{ github.actor }} is running the Test Network Off Chain tests 🍔
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Private
run-name: ${{ github.actor }} is running the Test Network Private tests
name: Test Network Private 🔒
run-name: ${{ github.actor }} is running the Test Network Private tests 🔒
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network SBE
run-name: ${{ github.actor }} is running the Test Network SBE tests
name: Test Network SBE 🎵
run-name: ${{ github.actor }} is running the Test Network SBE tests 🎵
on:
workflow_dispatch:

View file

@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Secured
run-name: ${{ github.actor }} is running the Test Network Secured tests
name: Test Network Secured 🔔
run-name: ${{ github.actor }} is running the Test Network Secured tests 🔔
on:
workflow_dispatch:

View file

@ -1,110 +0,0 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network
run-name: ${{ github.actor }} is testing the Test Network
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
basic:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
- javascript
- typescript
- java
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test Network Basic
working-directory: test-network
run: ../ci/scripts/run-test-network-basic.sh
env:
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}
off-chain:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
- javascript
- typescript
- java
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test Network Off Chain
working-directory: test-network
env:
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}
run: ../ci/scripts/run-test-network-off-chain.sh
hsm:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
- javascript
- typescript
- java
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Install SoftHSM
run: sudo apt install -y softhsm2
- name: Set up SoftHSM
run: |
echo directories.tokendir = /tmp > $HOME/softhsm2.conf
export SOFTHSM2_CONF=$HOME/softhsm2.conf
softhsm2-util --init-token --slot 0 --label "ForFabric" --pin 98765432 --so-pin 1234
- name: Run Test Network HSM
working-directory: test-network
env:
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}
run: ../ci/scripts/run-test-network-hsm.sh
gateway:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
- javascript
- typescript
- java
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test Network Off Chain
working-directory: test-network
env:
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}
run: ../ci/scripts/run-test-network-gateway.sh

View file

@ -106,4 +106,3 @@ We'll create a digital representation of these cards on the blockchain ledger. T
- [Go Bananas](docs/CloudReady/40-bananas.md)
- [Bring it Home](docs/CloudReady/90-teardown.md)

View file

@ -188,7 +188,8 @@ function build_cc() {
CHAINCODE_IMAGE=$CONTAINER_REGISTRY/$CHAINCODE_NAME
# Build the chaincode image
docker build -t $CHAINCODE_IMAGE contracts/$CHAINCODE_NAME-typescript
# TODO: configure buildx builders on the CI runners to ensure target arch and os are automatically set.
docker build --build-arg TARGETARCH=amd64 -t $CHAINCODE_IMAGE contracts/$CHAINCODE_NAME-typescript
# Push the image to the insecure container registry
docker push $CHAINCODE_IMAGE