The banner under the header stays; the card is the first sight of an update. The same card as the miner's (one language: the mark with a progress ring, "Igneum Wallet 0.1.3", one line (is available, is downloading with the percent, is ready to install, Installing. The app restarts itself., did not install with the one-line cause and Try again), up to three lines of release notes from the manifest with the rest behind "What changed", the size, Install now and Later. Escape and the backdrop are Later. Reduced motion is honoured. Rules (ui/update-card.js, pure, ui/update-card.test.mjs): the card never opens while the send screen is open, while a Touch ID or Windows Hello line is on screen, while a wallet is being created or imported, or while the app quits; it waits and comes once the block lifts. Later hides this version at this stage and leaves the banner; the card comes back for a newer version, or when the download is ready and automatic updates are off (with them on it installs by itself). An open card follows its update through downloading, ready, installing and failed; installing and failed never open a card by themselves. The engine serves ui/update-card.js next to app.js (src/server.rs). ?update=<kind>[&auto=0][&card=1] on the page shows every state without a manifest. The version stays 0.1.2 until the next ship. CI runs the new test file. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
67 lines
2.7 KiB
YAML
67 lines
2.7 KiB
YAML
# CI on every push and pull request (private repository, free runner minutes).
|
|
#
|
|
# What runs: the lottery-hash crate's tests (igneum-pow, release profile), the census tool's build, the two Python
|
|
# simulators' --quick modes (each under two minutes), the site build with an internal link check, and the gh-free
|
|
# identity grep of the public export list (tools/ci/forbidden-strings.txt).
|
|
#
|
|
# What does not run, on purpose: the node fork (vendor/igneum-node*, a rusty-kaspa fork of about 500 crates with
|
|
# rocksdb, blst and the execution layer) is gitignored here and too big for the free runners today (a cold build is
|
|
# 20 to 55 minutes on 2 to 8 vCPU, docs/bench-log.md). The workflow builds igneum-pow only; the fork's own tests run
|
|
# on the Mac and the seed node (infra/seed-nodes, infra/fast-time).
|
|
name: ci
|
|
on:
|
|
push:
|
|
pull_request:
|
|
jobs:
|
|
pow:
|
|
name: igneum-pow tests, igneum-census build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: toolchain
|
|
run: rustc --version && cargo --version
|
|
- name: igneum-pow tests (release)
|
|
working-directory: igneum-pow
|
|
run: cargo test --release
|
|
- name: igneum-census build (release)
|
|
working-directory: igneum-census
|
|
run: cargo build --release
|
|
sims:
|
|
name: simulators, quick modes
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
- run: python3 -m pip install --quiet numpy
|
|
- name: finality_v2.py --quick (under two minutes)
|
|
working-directory: sim
|
|
run: time timeout 120 python3 finality_v2.py --quick > finality_quick.md
|
|
- name: difficulty/sim.py --quick (under two minutes)
|
|
working-directory: sim/difficulty
|
|
run: time timeout 120 python3 sim.py --quick > difficulty_quick.md
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: sim-quick-output
|
|
path: |
|
|
sim/finality_quick.md
|
|
sim/difficulty/difficulty_quick.md
|
|
site:
|
|
name: site build, link check, identity grep
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
- name: site build
|
|
run: node site/build.mjs
|
|
- name: internal link check of site/*.html
|
|
run: node tools/ci/link-check.mjs
|
|
- name: identity grep of the public export list
|
|
run: bash tools/ci/identity-check.sh
|
|
- name: relay unit tests (parsers, secret compare)
|
|
run: node --test relay/test/parse.test.mjs relay/test/auth.test.mjs
|
|
- name: wallet update card (wording, note lines, when the card shows)
|
|
run: node --test app/igneum-wallet/ui/update-card.test.mjs
|