mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 01:38:32 +00:00
## Summary - Consolidates `SessionsPerEra` definition in common runtime (removes duplicate definitions) - Simplifies docker release workflow to always use full Docker builds - Removes binary reuse path from release workflow ## Changes ### Runtime Configuration - Remove duplicate `SessionsPerEra` definitions from individual runtimes - Import `SessionsPerEra` from `datahaven_runtime_common::time` instead - This fixes inconsistency where individual runtimes had `prod_or_fast!(6, 1)` while common had `prod_or_fast!(6, 3)` ### Docker Release Workflow - Remove binary reuse path - now always does full Docker build - Remove `binary-hash` input from `workflow_call` - Consolidate to single build step using `datahaven-build.Dockerfile` - `docker-build-release` now runs in parallel on main branch (no dependency on `build-operator`) ## Timing Configuration ### Production Runtime | Parameter | Value | Duration | |------------------|-------------|------------| | Session | 600 blocks | 1 hour | | Sessions per era | 6 | - | | Era | 6 sessions | 6 hours | | Bonding duration | 28 eras | 7 days | ### Fast Runtime (for testing) | Parameter | Value | Duration | |------------------|-------------|------------| | Session | 10 blocks | 1 minute | | Sessions per era | 1 | - | | Era | 1 session | 1 minute | | Bonding duration | 3 eras | 3 minutes | --------- Co-authored-by: Claude <noreply@anthropic.com>
70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
#! Main CI Specification for DataHaven Repository
|
|
|
|
name: CI
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
- perm-*
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
concurrency:
|
|
group: pr-checks-${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
# First Tier - Build the binary first
|
|
build-operator:
|
|
uses: ./.github/workflows/task-build-operator.yml
|
|
|
|
# First Tier - Other parallel jobs
|
|
ts-build:
|
|
uses: ./.github/workflows/task-ts-build.yml
|
|
ts-lint:
|
|
uses: ./.github/workflows/task-ts-lint.yml
|
|
unit-tests:
|
|
uses: ./.github/workflows/task-rust-tests.yml
|
|
contract-tests:
|
|
uses: ./.github/workflows/task-foundry-tests.yml
|
|
rust-lint:
|
|
uses: ./.github/workflows/task-rust-lint.yml
|
|
|
|
# Second Tier - Jobs that depend on operator build
|
|
check-metadata:
|
|
needs: [build-operator]
|
|
uses: ./.github/workflows/task-check-metadata.yml
|
|
with:
|
|
binary-hash: ${{ needs.build-operator.outputs.binary-hash }}
|
|
|
|
docker-build-ci:
|
|
needs: [build-operator]
|
|
uses: ./.github/workflows/task-docker-ci.yml
|
|
secrets: inherit
|
|
with:
|
|
binary-hash: ${{ needs.build-operator.outputs.binary-hash }}
|
|
|
|
docker-build-release:
|
|
if: github.ref == 'refs/heads/main'
|
|
uses: ./.github/workflows/task-docker-release.yml
|
|
secrets: inherit
|
|
|
|
moonwall-tests:
|
|
needs: [build-operator]
|
|
uses: ./.github/workflows/task-moonwall-tests.yml
|
|
with:
|
|
binary-hash: ${{ needs.build-operator.outputs.binary-hash }}
|
|
|
|
# Third Tier - E2E tests depend on docker build
|
|
e2e-tests:
|
|
needs: [docker-build-ci]
|
|
uses: ./.github/workflows/task-e2e.yml
|
|
secrets: inherit
|
|
with:
|
|
image-tag: ${{ needs.docker-build-ci.outputs.image-tag }}
|