Commit Graph

25 Commits

Author SHA1 Message Date
pezkuwichain 2dce840c4b fix(ci): trailing slash in debug Dockerfile COPY, make build-rustdoc non-blocking 2026-03-20 18:35:20 +03:00
pezkuwichain ccdda98ee9 fix(ci): compress rustdoc artifact to prevent upload stall
The VPS runner's limited bandwidth causes upload-artifact to stall when
uploading hundreds of MB of individual HTML files. Compress crate-docs
into a tar.gz before upload and extract on the publish side.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 01:07:07 +03:00
pezkuwichain 246e019781 fix(benchmarks): regenerate BABE equivocation proof blob, exclude revive benchmarks
- Regenerate EQUIVOCATION_PROOF_BLOB in pezpallet-babe benchmarking:
  the old blob contained stale header hashes that caused
  check_equivocation_proof to fail with assertion error

- Exclude pezpallet_revive from quick-benchmarks via
  --exclude-pezpallets flag: revive benchmarks require PolkaVM
  toolchain (riscv64emac-unknown-none-polkavm) for fixture compilation
  which is not available in CI. This removes continue-on-error so
  real benchmark failures are now visible

- Increase build-rustdoc timeout from 180 to 240 minutes for VPS runner
2026-03-06 16:52:47 +03:00
dependabot[bot] 5b43117eaa chore(deps): bump the ci_dependencies group across 1 directory with 14 updates
Bumps the ci_dependencies group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `5.0.0` | `6.0.2` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.1` | `6.0.0` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `6.0.0` | `7.0.0` |
| [actions/create-github-app-token](https://github.com/actions/create-github-app-token) | `2.1.4` | `2.2.1` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `6.18.0` | `6.19.2` |
| [docker/login-action](https://github.com/docker/login-action) | `3.6.0` | `3.7.0` |
| [actions/setup-node](https://github.com/actions/setup-node) | `5.0.0` | `6.2.0` |
| [actions/cache](https://github.com/actions/cache) | `4.3.0` | `5.0.3` |
| [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) | `2.7.0` | `2.8.0` |
| [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) | `1.13.0` | `1.15.2` |
| [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) | `2.7.8` | `2.8.2` |
| [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `2.4.0` | `3.2.0` |
| [tj-actions/changed-files](https://github.com/tj-actions/changed-files) | `47.0.0` | `47.0.4` |
| [codecov/codecov-action](https://github.com/codecov/codecov-action) | `5.5.1` | `5.5.2` |



Updates `actions/checkout` from 5.0.0 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

Updates `actions/upload-artifact` from 4.3.1 to 6.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.1...b7c566a772e6b6bfb58ed0dc250532a479d7789f)

Updates `actions/download-artifact` from 6.0.0 to 7.0.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/018cc2cf5baa6db3ef3c5f8a56943fffe632ef53...37930b1c2abaa49bbe596cd826c3c89aef350131)

Updates `actions/create-github-app-token` from 2.1.4 to 2.2.1
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/67018539274d69449ef7c02e8e71183d1719ab42...29824e69f54612133e76f7eaac726eef6c875baf)

Updates `docker/build-push-action` from 6.18.0 to 6.19.2
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/263435318d21b8e681c14492fe198d362a7d2c83...10e90e3645eae34f1e60eeb005ba3a3d33f178e8)

Updates `docker/login-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/5e57cd118135c172c3672efd75eb46360885c0ef...c94ce9fb468520275223c153574b00df6fe4bcc9)

Updates `actions/setup-node` from 5.0.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...6044e13b5dc448c55e2357c09f80417699197238)

Updates `actions/cache` from 4.3.0 to 5.0.3
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...cdf6c1fa76f9f475f3d7449005a359c84ca0f306)

Updates `lycheeverse/lychee-action` from 2.7.0 to 2.8.0
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](https://github.com/lycheeverse/lychee-action/compare/a8c4c7cb88f0c7386610c35eb25108e448569cb0...8646ba30535128ac92d33dfc9133794bfdd9b411)

Updates `actions-rust-lang/setup-rust-toolchain` from 1.13.0 to 1.15.2
- [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
- [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.13...1780873c7b576612439a134613cc4cc74ce5538c)

Updates `Swatinem/rust-cache` from 2.7.8 to 2.8.2
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/v2.7.8...779680da715d629ac1d338a641029a2f4372abb5)

Updates `actions/attest-build-provenance` from 2.4.0 to 3.2.0
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-build-provenance/compare/v2.4.0...96278af6caaf10aea03fd8d33a09a777ca52d62f)

Updates `tj-actions/changed-files` from 47.0.0 to 47.0.4
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/24d32ffd492484c1d75e0c0b894501ddb9d30d62...7dee1b0c1557f278e5c7dc244927139d78c0e22a)

Updates `codecov/codecov-action` from 5.5.1 to 5.5.2
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/5a1091511ad55cbe89839c7260b706298ca349f7...671740ac38dd9b0130fbe1cec585b89eea48d3de)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: actions/create-github-app-token
  dependency-version: 2.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: docker/build-push-action
  dependency-version: 6.19.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: actions/cache
  dependency-version: 5.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: lycheeverse/lychee-action
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: actions-rust-lang/setup-rust-toolchain
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: Swatinem/rust-cache
  dependency-version: 2.8.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci_dependencies
- dependency-name: actions/attest-build-provenance
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci_dependencies
- dependency-name: tj-actions/changed-files
  dependency-version: 47.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci_dependencies
- dependency-name: codecov/codecov-action
  dependency-version: 5.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci_dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 11:07:51 +00:00
pezkuwichain 387207c8ab fix(ci): disable forklift RUSTC_WRAPPER in all container jobs
The Parity CI Docker image sets RUSTC_WRAPPER=/usr/local/bin/forklift
for GCS cache optimization. On our VPS runners without GCP credentials,
forklift crashes with nil pointer dereference when trying to create
GCS client. The global env RUSTC_WRAPPER="" doesn't reliably propagate
into Docker containers.

Fix: Add explicit "Disable forklift cache wrapper" step in every
container job that runs cargo commands, using $GITHUB_ENV to ensure
the empty RUSTC_WRAPPER persists across all steps within the job.

Affected workflows: build-publish-images, checks, tests, tests-misc,
build-misc, docs (32 container jobs total).
2026-02-28 01:43:32 +03:00
pezkuwichain ea06d27c97 fix(ci): update UI test stderr files for pezsp_api rebrand, increase test-doc timeout
- Update 5 .stderr files: sp_api → pezsp_api references and column numbers
  (empty_impl_runtime_apis_call, impl_incorrect_method_signature,
   mock_advanced_hash_by_reference, mock_only_self_reference,
   type_reference_in_impl_runtime_apis_call)
- Increase test-doc timeout 180→300min (VPS needs ~3h for doc tests)
2026-02-27 17:57:31 +03:00
pezkuwichain 5c08dc528c fix(ci): increase VPS timeouts, exclude revive-eth-rpc from doc tests, make quick-benchmarks informational
- Exclude pezpallet-revive-eth-rpc from doc tests and rustdoc (missing
  revive_chain.scale metadata file in CI)
- Make quick-benchmarks continue-on-error (83 pre-existing pezpallet_revive
  benchmark failures need runtime fixes, not CI fixes)
- Increase timeouts across all VPS runner jobs to prevent false failures:
  - tests-misc: pezframe-ui 45→90, node-metrics 45→90, check-each-crate 90→140,
    macos 60→90, deterministic-wasm 40→75, wasm-examples 20→45, tracing 20→45,
    metadata-hash 20→45
  - build-misc: pez-subkey 20→45
  - tests: quick-benchmarks 120→180, cargo-check-all-benches 45→75
2026-02-26 15:36:21 +03:00
pezkuwichain fd7754f7e7 fix(ci): fix build failures and add security audit workflow
- build-linux-stable: disable forklift GCS cache (RUSTC_WRAPPER="")
  that panics without GCP credentials on VPS runners
- prepare-bridges-zombienet-artifacts: fix bridges/testing path to
  pezbridges/testing (rebrand path was not updated in workflow)
- build-rustdoc: use CARGO_TARGET_DIR instead of ./target for doc
  output path (docs generated at /cache/target/doc, not ./target/doc)
- build-push-image-*: add workspace permission fix step before checkout
  to handle root-owned files left by Docker container jobs
- All build jobs: increase timeout from 120 to 180 minutes for VPS
- Add cargo-deny + cargo-audit security audit workflow (weekly + on PR)
- Add deny.toml with license, advisory, and source checks
2026-02-25 19:39:47 +03:00
pezkuwichain d410d885b9 fix(ci): increase job timeouts for VPS runners
Self-hosted VPS runners are slower than GitHub-hosted runners:
- quick-benchmarks: 45 -> 120 min (release build + benchmark run)
- test-syscalls: 60 -> 120 min (production profile musl build)
- test-doc: 90 -> 180 min (full workspace doc tests with wasm builds)
- build-rustdoc: 90 -> 180 min (full workspace rustdoc generation)
2026-02-25 04:59:42 +03:00
pezkuwichain ab7aa61746 fix(ci): add WASM_BUILD_WORKSPACE_HINT to test-doc job
Without this env var, wasm-builder cannot find Cargo.lock when
CARGO_TARGET_DIR is outside the workspace (/cache/target). This causes
the nested wasm build to resolve fresh dependencies, pulling alloy-eips
1.7.3 which requires rustc 1.91 (CI has 1.88.0).
2026-02-23 23:18:32 +03:00
pezkuwichain e4388343e4 ci: use wasm32v1-none instead of SKIP_WASM_BUILD for doc tests
Doc tests in pezsc-basic-authorship require a real WASM runtime binary.
SKIP_WASM_BUILD=1 produces a dummy blob causing runtime panics.

Use wasm32v1-none target for test-doc (needs real WASM),
keep SKIP_WASM_BUILD=1 only for build-rustdoc (docs generation only).
2026-02-23 04:03:22 +03:00
pezkuwichain 41ea3148ec ci: add wasm32v1-none target and SKIP_WASM_BUILD to fix serde_core duplicate alloc error
The paritytech CI container lacks the wasm32v1-none target, causing
wasm-builder to fall back to wasm32-unknown-unknown with -Z build-std.
Combined with our serde_core fork, this creates a duplicate lang item
error for alloc crate.

Fix: Add rustup target add wasm32v1-none to all WASM-building jobs.
For check-only jobs (bench checks, docs, each-crate), add SKIP_WASM_BUILD=1.

Also fixes test-deterministic-wasm wasm blob path to work with either target.
2026-02-23 02:52:20 +03:00
pezkuwichain 0e2a36f3ff ci: re-enable pezsc-basic-authorship doc tests and pezsnowbridge-runtime-common bench checks
- Remove pezsc-basic-authorship from doc test exclusions (exclusion was
  copy-pasted from zombienet-sdk-tests, no actual doc issue exists)
- Remove pezsnowbridge-runtime-common from bench check exclusions
  (try_successful_origin is properly implemented for both ForeignAssetOwner
  and LocalAssetOwner with runtime-benchmarks feature gate)
2026-02-22 22:20:53 +03:00
pezkuwichain d9782dedef ci: remove serde_core/wasm32v1-none workarounds, re-enable 35+ disabled jobs
The serde_core + Rust 1.88 issue only affects wasm32v1-none target.
wasm32-unknown-unknown works fine, and wasm-builder falls back to it
automatically when wasm32v1-none is not installed.

- Remove all `rustup target add wasm32v1-none` steps (12 files)
- Remove SKIP_WASM_BUILD=1 env vars added as workaround (28 occurrences)
- Re-enable quick-benchmarks job (tests.yml)
- Re-enable check-core-crypto-features job (checks.yml)
- Re-enable 15 build/zombienet jobs (build-publish-images.yml)
- Re-enable test-pezframe-examples-compile-to-wasm and
  test-deterministic-wasm jobs (tests-misc.yml)

Tracking: #355, #357, #358
Upstream: https://github.com/serde-rs/serde/issues/3021 (still open)
2026-02-22 21:29:53 +03:00
pezkuwichain ebefa0b244 fix: add cache cleanup step to prevent disk exhaustion in CI 2026-02-12 06:18:45 +03:00
pezkuwichain 594c7a674e fix: increase CI timeouts to 90m and exclude wasm-dependent doc-test
Cold cache builds exceed 45m limit. Also exclude pezsc-basic-authorship
from doc-tests as it requires wasm binary (incompatible with SKIP_WASM_BUILD).
2026-02-12 04:29:02 +03:00
pezkuwichain 3a7ceaa528 fix: serialize CI jobs to prevent concurrent disk exhaustion
Run check-try-runtime after cargo-clippy (not in parallel) and
build-rustdoc after test-doc. Jobs on the same VPS share a single
disk, so parallel builds exhaust available space.
Both Checks jobs share one cache volume; both Docs jobs share another.
2026-02-12 02:47:40 +03:00
pezkuwichain 6700a35699 fix: separate CI cache volumes to prevent concurrent disk exhaustion
Each workflow job now uses its own cache directory to avoid multiple
runners on the same VPS writing to the same target dir simultaneously.
2026-02-12 02:03:19 +03:00
pezkuwichain 36b724ec4f fix: add git safe.directory for containerized CI with persistent cache
When using persistent cargo cache mounted from host directory, the container
user differs from the directory owner, causing git "dubious ownership" error.
This fix adds `git config --global --add safe.directory '*'` before cargo
commands in containerized jobs.
2026-01-28 04:37:43 +03:00
pezkuwichain 785eba8322 feat: add persistent cargo target cache for self-hosted runners
Mount /cache/cargo-target/pezkuwi-sdk on VPS runners to reuse
compiled artifacts between workflow runs. This significantly
speeds up subsequent builds by avoiding full recompilation.

Updated workflows:
- checks.yml (cargo-clippy, check-try-runtime)
- docs.yml (test-doc, build-rustdoc)
- tests-linux-stable.yml (all test jobs)

Also removed Swatinem/rust-cache where persistent cache is used
since it's now redundant.
2026-01-28 03:12:27 +03:00
pezkuwichain 262519a918 fix(ci): exclude zombienet-sdk-tests from doc tests
The crate's build.rs runs nested cargo build which doesn't inherit
workspace [patch.crates-io] settings, causing serde_core duplicate
lang item error with wasm32 target.

This is a test-only crate and doesn't affect mainnet binaries.

Tracking issue: #357
2026-01-27 02:21:05 +03:00
pezkuwichain b7a074aeaf perf: optimize CI workflows with caching and reduced parallelism
Changes:
- Add Rust caching (Swatinem/rust-cache) to all heavy build jobs
- Reduce cargo-check-each-crate from 7 to 4 parallel jobs
- Reduce tests-linux-stable matrix from 6 to 3 jobs
- Set CARGO_INCREMENTAL=0 for consistent caching
- Reduce timeouts from 60 to 45 minutes (cache makes builds faster)
- Remove redundant disk cleanup steps (cache handles this)

Expected improvements:
- 50-80% faster builds after cache is populated
- Lower VPS load (fewer parallel jobs)
- More consistent build times

Affected workflows:
- checks.yml (cargo-clippy, check-try-runtime)
- tests.yml (quick-benchmarks, cargo-check-all-benches)
- tests-misc.yml (test-pezframe-ui, cargo-check-each-crate)
- tests-linux-stable.yml (test-linux-stable)
- docs.yml (test-doc, build-rustdoc)
2026-01-26 23:44:30 +03:00
pezkuwichain 18319a1017 fix: update docs.yml test flags and clean up ensure.rs comments
- Add --all-features and SKIP_WASM_BUILD=1 to cargo test --doc
- Remove outdated feature unification comment from pezpallet-tiki ensure.rs
2025-12-24 11:49:46 +03:00
pezkuwichain 3680848df2 Development (#172)
* docs: Add CLAUDE_RULES.md with strict rebrand protection rules

- Define immutable rebrand rules that cannot be violated
- Prohibit reverting rebrand for cargo check convenience
- Establish checkpoint and audit trail requirements
- Document correct error handling approach

* refactor: Complete kurdistan-sdk to pezkuwi-sdk rebrand

- Update README.md with pezkuwi-sdk branding
- Replace all kurdistan-sdk URL references with pezkuwi-sdk
- Replace kurdistan-tech with pezkuwichain in workflows
- Update email domains from @kurdistan-tech.io to @pezkuwichain.io
- Rename tool references: kurdistan-tech-publish → pezkuwi-publish
- Update runner names: kurdistan-tech-* → pezkuwichain-*
- Update analytics/forum/matrix domains to pezkuwichain.io
- Keep 'Kurdistan Tech Institute' as organization name
- Keep tech@kurdistan.gov as official government contact
2025-12-19 23:30:43 +03:00
pezkuwichain 2093647fea feat: Add rebrand CI/CD workflows to main branch
- Add 72 rebrand workflow files (polkadot→pezkuwi, substrate→bizinikiwi, cumulus→pezcumulus)
- Add GitHub actions, issue templates, and configs
- Removed unnecessary workflows (fork-sync, gitspiegel, upstream-tracker, sync-templates, backport)
- Renamed zombienet test files to match new naming convention
2025-12-19 22:51:57 +03:00