feat: dutydb #58
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: DKG runner integration | |
| on: | |
| push: | |
| branches: ["main"] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "Cargo.lock" | |
| - "scripts/dkg-runner/**" | |
| - ".github/workflows/dkg-runner.yml" | |
| pull_request: | |
| types: [synchronize, opened, reopened, ready_for_review] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "Cargo.lock" | |
| - "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: 2 Charon + 2 Pluto nodes | |
| id: 2-charon-2-pluto | |
| pluto_nodes: 2 | |
| charon_nodes: 2 | |
| - name: 4 Pluto nodes | |
| id: 4-pluto | |
| pluto_nodes: 4 | |
| charon_nodes: 0 | |
| 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_SMOKE_VERIFY: "1" | |
| SMOKE_SECONDS: "3" | |
| run: ./scripts/dkg-runner/run.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 |