Move the remaining sample tests from Azure to GHA

Signed-off-by: Josh Kneubuhl <jkneubuh@us.ibm.com>
This commit is contained in:
Josh Kneubuhl 2022-11-15 10:00:53 -05:00 committed by Dave Enyeart
parent b7b06b9de3
commit 38a36c65d3
16 changed files with 403 additions and 170 deletions

View file

@ -7,11 +7,9 @@ run-name: ${{ github.actor }} is linting fabric-samples
on:
workflow_dispatch:
push:
branches:
- main
branches: [ "main" ]
pull_request:
branches:
- main
branches: [ "main" ]
env:
GO_VER: 1.18.3

43
.github/workflows/rest-sample.yaml vendored Normal file
View file

@ -0,0 +1,43 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: REST Sample
run-name: ${{ github.actor }} is testing the REST Sample
env:
NODE_VER: 16.x
on:
workflow_dispatch:
push:
branches: [ "main" ]
paths: [ "asset-transfer-basic/rest-api-typescript/**" ]
pull_request:
branches: [ "main" ]
paths: [ "asset-transfer-basic/rest-api-typescript/**" ]
jobs:
test-sample:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VER }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install REST Sample Dependencies
working-directory: asset-transfer-basic/rest-api-typescript
run: npm install
- name: Build REST Sample Application
run: npm run build
working-directory: asset-transfer-basic/rest-api-typescript
- name: Test REST Sample Application
run: npm test
working-directory: asset-transfer-basic/rest-api-typescript

View file

@ -0,0 +1,35 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Basic
run-name: ${{ github.actor }} is running the Test Network Basic tests
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 }}

View file

@ -0,0 +1,37 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Events
run-name: ${{ github.actor }} is running the Test Network Events tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
events:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- javascript
- java
chaincode-name:
- events
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test
working-directory: test-network
run: ../ci/scripts/run-test-network-events.sh
env:
CHAINCODE_NAME: ${{ matrix.chaincode-name }}
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}

View file

@ -0,0 +1,35 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Gateway
run-name: ${{ github.actor }} is running the Test Network Gateway tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
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

44
.github/workflows/test-network-hsm.yaml vendored Normal file
View file

@ -0,0 +1,44 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network HSM
run-name: ${{ github.actor }} is running the Test Network HSM tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
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

View file

@ -0,0 +1,37 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Ledger
run-name: ${{ github.actor }} is running the Test Network Ledger tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
basic:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
- javascript
chaincode-name:
- ledger
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test
working-directory: test-network
run: ../ci/scripts/run-test-network-ledger.sh
env:
CHAINCODE_NAME: ${{ matrix.chaincode-name }}
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}

View file

@ -0,0 +1,35 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Off Chain
run-name: ${{ github.actor }} is running the Test Network Off Chain tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
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

View file

@ -0,0 +1,36 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Private
run-name: ${{ github.actor }} is running the Test Network Private tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
private:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
chaincode-name:
- private
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test
working-directory: test-network
run: ../ci/scripts/run-test-network-private.sh
env:
CHAINCODE_NAME: ${{ matrix.chaincode-name }}
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}

37
.github/workflows/test-network-sbe.yaml vendored Normal file
View file

@ -0,0 +1,37 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network SBE
run-name: ${{ github.actor }} is running the Test Network SBE tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
SBE:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- typescript
- java
chaincode-name:
- sbe
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test
working-directory: test-network
run: ../ci/scripts/run-test-network-sbe.sh
env:
CHAINCODE_NAME: ${{ matrix.chaincode-name }}
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}

View file

@ -0,0 +1,36 @@
#
# SPDX-License-Identifier: Apache-2.0
#
name: Test Network Secured
run-name: ${{ github.actor }} is running the Test Network Secured tests
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
secured:
runs-on: ubuntu-20.04
strategy:
matrix:
chaincode-language:
- go
chaincode-name:
- secured
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up the test network runtime
uses: ./.github/actions/test-network-setup
- name: Run Test
working-directory: test-network
run: ../ci/scripts/run-test-network-secured.sh
env:
CHAINCODE_NAME: ${{ matrix.chaincode-name }}
CHAINCODE_LANGUAGE: ${{ matrix.chaincode-language }}

View file

@ -8,109 +8,39 @@ trigger:
- release-2.2
variables:
- name: FABRIC_VERSION
value: 2.4
- name: GOPATH
value: $(Build.Repository.LocalPath)
- name: GO_BIN
value: $(GOPATH)/bin
- name: GO_VER
value: 1.18.3
- name: NODE_VER
value: 16.x
- name: PATH
value: $(GOPATH)/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
- group: credentials
jobs:
- job: REST_Sample
displayName: REST Server Sample
pool:
vmImage: ubuntu-20.04
steps:
- template: templates/asset-transfer-basic/azure-pipelines-rest.yml
- job: TestNetworkLedger
displayName: Test Network
pool:
vmImage: ubuntu-20.04
strategy:
matrix:
Ledger-Go:
CHAINCODE_NAME: ledger
CHAINCODE_LANGUAGE: go
Ledger-Javascript:
CHAINCODE_NAME: ledger
CHAINCODE_LANGUAGE: javascript
steps:
- template: templates/install-deps.yml
- script: ../ci/scripts/run-test-network-ledger.sh
workingDirectory: test-network
displayName: Run Test Network Ledger Chaincode
- job: TestNetworkPrivate
displayName: Test Network
pool:
vmImage: ubuntu-20.04
strategy:
matrix:
Private-Go:
CHAINCODE_NAME: private
CHAINCODE_LANGUAGE: go
steps:
- template: templates/install-deps.yml
- script: ../ci/scripts/run-test-network-private.sh
workingDirectory: test-network
displayName: Run Test Network Private Chaincode
- job: TestNetworkSBE
displayName: Test Network
pool:
vmImage: ubuntu-20.04
strategy:
matrix:
SBE-Typescript:
CHAINCODE_NAME: sbe
CHAINCODE_LANGUAGE: typescript
SBE-Java:
CHAINCODE_NAME: sbe
CHAINCODE_LANGUAGE: java
steps:
- template: templates/install-deps.yml
- script: ../ci/scripts/run-test-network-sbe.sh
workingDirectory: test-network
displayName: Run Test Network SBE Chaincode
- job: TestNetworkSecured
displayName: Test Network
pool:
vmImage: ubuntu-20.04
strategy:
matrix:
Secured-Go:
CHAINCODE_NAME: secured
CHAINCODE_LANGUAGE: go
steps:
- template: templates/install-deps.yml
- script: ../ci/scripts/run-test-network-secured.sh
workingDirectory: test-network
displayName: Run Test Network Secured Chaincode
- job: TestNetworkEvents
displayName: Test Network
pool:
vmImage: ubuntu-20.04
strategy:
matrix:
Events-Javascript:
CHAINCODE_NAME: events
CHAINCODE_LANGUAGE: javascript
Events-Java:
CHAINCODE_NAME: events
CHAINCODE_LANGUAGE: java
steps:
- template: templates/install-deps.yml
- script: ../ci/scripts/run-test-network-events.sh
workingDirectory: test-network
displayName: Run Test Network Events Chaincode
- task: NodeTool@0
inputs:
versionSpec: $(NODE_VER)
displayName: Install Node.js
- script: npm install
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Install REST Sample Dependencies
- script: npm run build
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Build REST Sample Application
- script: npm test
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Test REST Sample Application
- script: |
docker build -t ghcr.io/hyperledger/fabric-rest-sample .
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Build REST Sample Docker Image
- script: |
echo ${GITHUB_PAT} | docker login ghcr.io -u ${GITHUB_USER} --password-stdin
docker push ghcr.io/hyperledger/fabric-rest-sample:latest
condition: and(succeeded(),eq(variables['Build.Reason'], 'IndividualCI'))
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Publish REST Sample Docker Image
env:
GITHUB_USER: $(GITHUB_USER)
GITHUB_PAT: $(GITHUB_PAT)

View file

@ -1,31 +0,0 @@
#
# SPDX-License-Identifier: Apache-2.0
#
steps:
- task: NodeTool@0
inputs:
versionSpec: $(NODE_VER)
displayName: Install Node.js
- script: npm install
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Install REST Sample Dependencies
- script: npm run build
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Build REST Sample Application
- script: npm test
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Test REST Sample Application
- script: |
docker build -t ghcr.io/hyperledger/fabric-rest-sample .
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Build REST Sample Docker Image
- script: |
echo ${GITHUB_PAT} | docker login ghcr.io -u ${GITHUB_USER} --password-stdin
docker push ghcr.io/hyperledger/fabric-rest-sample:latest
condition: and(succeeded(),eq(variables['Build.Reason'], 'IndividualCI'))
workingDirectory: asset-transfer-basic/rest-api-typescript
displayName: Publish REST Sample Docker Image
env:
GITHUB_USER: $(GITHUB_USER)
GITHUB_PAT: $(GITHUB_PAT)

View file

@ -1,13 +0,0 @@
#
# SPDX-License-Identifier: Apache-2.0
#
steps:
- script: |
sudo apt install -y softhsm2
displayName: Install SoftHSM
- script: |
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
displayName: Set up SoftHSM

View file

@ -1,17 +0,0 @@
#
# SPDX-License-Identifier: Apache-2.0
#
steps:
- task: NodeTool@0
inputs:
versionSpec: $(NODE_VER)
displayName: Install Node.js
- script: curl -L --retry 5 --retry-delay 3 https://hyperledger.jfrog.io/hyperledger/fabric-binaries/hyperledger-fabric-linux-amd64-${FABRIC_VERSION}-stable.tar.gz | tar xz
displayName: Download Fabric CLI
- script: curl -L --retry 5 --retry-delay 3 https://hyperledger.jfrog.io/hyperledger/fabric-binaries/hyperledger-fabric-ca-linux-amd64-${FABRIC_VERSION}-stable.tar.gz | tar xz
displayName: Download Fabric CA CLI
- script: curl https://raw.githubusercontent.com/kadwanev/retry/master/retry -o ./bin/retry && chmod +x ./bin/retry
displayName: Install retry CLI
- script: ./ci/scripts/pullFabricImages.sh
displayName: Pull Fabric Docker Imagess

View file

@ -1,9 +0,0 @@
#
# SPDX-License-Identifier: Apache-2.0
#
steps:
- task: NodeTool@0
inputs:
versionSpec: $(NODE_VER)
displayName: Install Node.js