Traits for QBFT (draft) #54
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: DKG runner integration | |
| on: | |
| push: | |
| branches: ["main"] | |
| paths: | |
| - "scripts/dkg-runner/**" | |
| - ".github/workflows/dkg-runner.yml" | |
| pull_request: | |
| types: [synchronize, opened, reopened, ready_for_review] | |
| paths: | |
| - "scripts/dkg-runner/**" | |
| - ".github/workflows/dkg-runner.yml" | |
| workflow_dispatch: | |
| inputs: | |
| timeout: | |
| description: "Per-ceremony TIMEOUT (seconds)" | |
| type: string | |
| default: "120" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| actions: read | |
| env: | |
| CHARON_VERSION: v1.7.1 | |
| CHARON_URL: https://github.com/ObolNetwork/charon/releases/download/v1.7.1/charon-v1.7.1-linux-amd64.tar.gz | |
| jobs: | |
| dkg-ceremony: | |
| name: ${{ matrix.name }} | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: 4 Charon nodes | |
| id: 4-charon | |
| pluto_nodes: 0 | |
| charon_nodes: 4 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Cache charon binary | |
| id: cache-charon | |
| uses: actions/cache@v4 | |
| with: | |
| path: bin/charon | |
| key: charon-${{ env.CHARON_VERSION }}-linux-amd64 | |
| - name: Install charon | |
| if: steps.cache-charon.outputs.cache-hit != 'true' | |
| run: ./scripts/dkg-runner/ci/install-charon.sh bin | |
| - name: Verify charon | |
| run: ./bin/charon version | |
| - name: Cache cargo registry and target | |
| if: matrix.pluto_nodes > 0 | |
| uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| - name: Update apt package list | |
| if: matrix.pluto_nodes > 0 | |
| run: sudo apt-get update | |
| - name: Install protobuf | |
| if: matrix.pluto_nodes > 0 | |
| uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0 | |
| with: | |
| packages: protobuf-compiler=3.21.12* | |
| version: 3.21.12 | |
| - name: Install oas3-gen | |
| if: matrix.pluto_nodes > 0 | |
| run: cargo install oas3-gen@0.24.0 | |
| - name: Build pluto | |
| if: matrix.pluto_nodes > 0 | |
| run: cargo build -p pluto-cli | |
| - name: Run DKG ceremony | |
| env: | |
| CI: "true" | |
| NODES: "4" | |
| THRESHOLD: "3" | |
| PLUTO_NODES: ${{ matrix.pluto_nodes }} | |
| CHARON_NODES: ${{ matrix.charon_nodes }} | |
| CHARON_BIN: ${{ github.workspace }}/bin/charon | |
| PLUTO_BIN: ${{ github.workspace }}/target/debug/pluto | |
| TIMEOUT: ${{ inputs.timeout || '120' }} | |
| run: ./scripts/dkg-runner/run.sh | |
| - name: Verify ceremony outputs | |
| env: | |
| NODES: "4" | |
| run: ./scripts/dkg-runner/ci/verify-output.sh | |
| - name: Upload work dir on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dkg-run-${{ github.run_id }}-${{ matrix.id }} | |
| path: /tmp/dkg-run | |
| if-no-files-found: warn | |
| retention-days: 7 |