Skip to content

fabtoken: PublicParams.SetAuditors panics on empty identity slice #9944

fabtoken: PublicParams.SetAuditors panics on empty identity slice

fabtoken: PublicParams.SetAuditors panics on empty identity slice #9944

Workflow file for this run

name: Tests
on:
push:
branches: [ main, feature/evm-network-driver, feature/zkat-snark-driver ]
pull_request:
branches: [ main, feature/evm-network-driver, feature/zkat-snark-driver ]
workflow_dispatch:
inputs:
fsc-version:
default: 'github.com/hyperledger-labs/fabric-smart-client@main'
required: true
description: 'FSC dependency'
env:
GOFLAGS: -mod=mod
permissions:
contents: read
jobs:
checks:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: "go.mod"
cache-dependency-path: "**/*.sum"
- name: Replace FSC dep
run: |
if [ -n "${{ github.event.inputs.fsc-version }}" ]; then
echo "Replace FSC dependency"
go mod edit -replace=github.com/hyperledger-labs/fabric-smart-client=${{ github.event.inputs.fsc-version }}
go mod tidy || true
else
echo "Skipping FSC dependency replacement"
fi
- name: Set up tools
run: make install-tools
- name: Run checks
run: make checks
- name: Run linter
run: make lint
utest:
needs: checks
runs-on: ubuntu-latest
strategy:
matrix:
tests: [unit-tests-race, unit-tests-regression]
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: "go.mod"
cache-dependency-path: "**/*.sum"
- name: Set up tools
run: make install-tools
- name: Install Testing Docker Images
run: make testing-docker-images
- name: Unit Tests with Coverage
run: |
make unit-tests
./ci/scripts/filter-coverage.sh profile.cov profile.cov
- name: Send coverage to Coveralls
uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: profile.cov
flag-name: utest-${{ matrix.tests }}
parallel: true
fail-on-error: false
- name: Run ${{ matrix.tests }}
run: make ${{ matrix.tests }}
itest:
needs: checks
if: github.ref == 'refs/heads/main' || github.base_ref == 'main'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# NOTE: the fungible suites loop over integration.AllTestTypes, so a plain
# "TN" label filter runs that spec once per infrastructure type
# (websocket, libp2p, replicas) sequentially in a single job. The specs
# calling fungible.TestAll are expensive enough that this tripled the job
# runtime (~45m), so they are split into one job per infrastructure type
# here. Coverage is unchanged: all three configurations still run, just in
# parallel. See fungible.mk / fabricx.mk for the matching targets.
tests: [
dlog-fabric-t1-websocket,
dlog-fabric-t1-libp2p,
dlog-fabric-t1-replicas,
dlog-fabric-t2,
dlog-fabric-t2.1,
dlog-fabric-t3,
dlog-fabric-t4,
dlog-fabric-t5,
dlog-fabric-t6-websocket,
dlog-fabric-t6-libp2p,
dlog-fabric-t6-replicas,
dlog-fabric-t7,
dlog-fabric-t8-websocket,
dlog-fabric-t8-libp2p,
dlog-fabric-t8-replicas,
dlog-fabric-t9,
dlog-fabric-t10-websocket,
dlog-fabric-t10-libp2p,
dlog-fabric-t10-replicas,
dlog-fabric-t11,
dlog-fabric-t12,
dlog-fabric-t13,
# dlog-fabric-t14,
fabricx-dlog-t1-websocket,
fabricx-dlog-t1-libp2p,
fabricx-dlog-t1-replicas,
# fabricx-dlog-t2,
# fabricx-dlog-t2.1,
fabricx-dlog-t3,
fabricx-dlog-t4,
fabricx-dlog-t5,
fabricx-dlog-t6-websocket,
fabricx-dlog-t6-libp2p,
fabricx-dlog-t6-replicas,
# fabricx-dlog-t7,
# fabricx-dlog-t9,
fabricx-dlog-t11,
# fabricx-dlog-t12,
fabricx-dlog-t13,
# fabricx-dlog-t14,
fabricx-dlog-t16-websocket,
fabricx-dlog-t16-libp2p,
fabricx-dlog-t16-replicas,
fabtoken-dlog-fabric,
dloghsm-fabric-t1-websocket,
dloghsm-fabric-t1-libp2p,
dloghsm-fabric-t1-replicas,
dloghsm-fabric-t2-websocket,
dloghsm-fabric-t2-libp2p,
dloghsm-fabric-t2-replicas,
fabtoken-fabric-t1-websocket,
fabtoken-fabric-t1-libp2p,
fabtoken-fabric-t1-replicas,
fabtoken-fabric-t2,
fabtoken-fabric-t3,
fabtoken-fabric-t4,
fabtoken-fabric-t5,
update-t1,
update-t2,
update-t3,
nft-dlog,
nft-fabtoken,
dvp-fabtoken,
dvp-dlog,
interop-fabtoken-t1,
interop-fabtoken-t3,
interop-fabtoken-t4,
interop-fabtoken-t5,
interop-dlog-t1,
interop-dlog-t3,
interop-dlog-t4,
interop-dlog-t5,
dlogstress-t1,
]
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: "go.mod"
cache-dependency-path: "**/*.sum"
- name: Set up tools
run: make install-tools
- name: Download fabric binaries
run: make download-fabric
- name: Docker
run: make docker-images
- name: Fabric-x setup
if: startsWith(matrix.tests, 'fabricx')
run: |
make fxconfig configtxgen fabricx-docker-images
- name: Run ${{ matrix.tests }}
run: |
mkdir -p covdata
GOCOVERDIR=$(realpath covdata) make integration-tests-${{ matrix.tests }}
go tool covdata textfmt -i=covdata -o coverage.profile
./ci/scripts/filter-coverage.sh coverage.profile coverage.profile
- name: Send coverage to Coveralls
uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: coverage.profile
flag-name: itest-${{ matrix.tests }}
parallel: true
fail-on-error: false
publish-coverage:
needs: [ utest, itest ]
runs-on: ubuntu-latest
steps:
- name: Finish coverage report
uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
fail-on-error: false
bench-check:
needs: checks
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: "go.mod"
cache-dependency-path: "**/*.sum"
- name: Download dependencies
run: go mod download
- name: Compile benchmarks (do not run)
run: go test ./... -run=^$ -bench=^$
# Guard: the tokengen / artifactgen binaries must build without cgo so
# they can be distributed in scratch / alpine images and on hosts
# without a C toolchain. See #1445.
cgo-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: "go.mod"
cache-dependency-path: "**/*.sum"
- name: Download dependencies
run: go mod download
- name: Build tokengen without cgo
env:
CGO_ENABLED: "0"
run: cd ./cmd/tokengen; go build -o /dev/null .
- name: Build artifactgen without cgo
env:
CGO_ENABLED: "0"
run: cd ./cmd/artifactgen; go build -o /dev/null .