fix(selector): close the token iterator displaced on retry #9939
Workflow file for this run
This file contains hidden or 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
| 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 . | |