Skip to content

feat: dutydb

feat: dutydb #58

Workflow file for this run

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