Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,110 @@ jobs:
if-no-files-found: warn
retention-days: 7

# ── Drive the actual app against actual nodes ───────────────────────────────
#
# Everything above this line can pass for a client that never starts. The jobs
# compile it, unit test :shared, build a jar and a wheel, and check facts about
# PyPI -- and every defect this repo has shipped to the server team lived past
# all of that, because it only exists once the app is RUNNING and talking to a
# node. This job starts it, four times, against the four node configurations a
# universal client has to be complete against.
#
# See testing/README.md for the matrix and for the one corner it cannot cover.
e2e-desktop:
name: e2e (desktop)
needs: [gradle]
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4

- name: apt (hardened)
uses: ./.github/actions/apt
with:
# Compose Desktop needs a display. There is no X server on a runner.
# xvfb-run needs xauth; without it it fails with a bare "xauth: not found".
packages: xvfb xauth

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'

- uses: actions/download-artifact@v4
with:
name: gradle-client
path: jars

- name: The node this client will be a client of
id: node
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
want="v$(cat VERSION)"
asset_for() { echo "ciris-server-$1-x86_64-unknown-linux-gnu.tar.gz"; }
mkdir -p node
# The pinned version first. Client and server versions are gated to
# move together, so that is the pairing this tree claims to work with.
if gh release download "$want" -R CIRISAI/CIRISServer \
-p "$(asset_for "$want")" -D node 2>/dev/null; then
used="$want"
else
# NOT a silent fallback. The client can legitimately cut a version
# before the server tags the matching one, and testing against no
# node at all would be worse -- but which node ran is a fact the
# report has to carry, not a detail the log buries.
used=$(gh release view -R CIRISAI/CIRISServer --json tagName -q .tagName)
echo "::notice::CIRISServer $want is not released yet; the walk ran against $used"
gh release download "$used" -R CIRISAI/CIRISServer -p "$(asset_for "$used")" -D node
Comment on lines +250 to +252

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Record the fallback node version in the report

When the matching server tag is unavailable, this selects the latest release, but the selected used value is never passed to run_e2e.py or included in e2e-report.json. The uploaded evidence therefore does not reliably identify which compatibility pairing produced its results, despite this fallback being expected during client-first releases; add the selected tag to the machine-readable report.

Useful? React with 👍 / 👎.

fi
tar xzf node/ciris-server-*.tar.gz -C node
chmod +x node/ciris-server
echo "version=$used" >> "$GITHUB_OUTPUT"
echo "Client $(cat VERSION) walking against node $used"

- name: Walk the matrix
run: |
set -euo pipefail
jar=$(find jars -name '*.jar' -size +1M | head -1)
test -n "$jar" || { echo "::error::no uber-jar in the gradle artifact"; exit 1; }
python3 -m testing.run_e2e \
--corner all \
--jar "$jar" \
--node-bin node/ciris-server \
--node-version "${{ steps.node.outputs.version }}" \
--report e2e-report.json \
--workdir e2e-work

- name: What the walk saw
if: always()
run: |
test -f e2e-report.json || { echo "no report was written"; exit 0; }
python3 - <<'EOF'
import json
r = json.load(open("e2e-report.json"))
for c in r["corners"]:
print(f"{c['corner']:24s} {c['status']:8s} {c['seconds']}s screen={c['screen']!r}")
for case in c["cases"]:
if case["status"] == "failed":
print(f" FAILED {case['name']}: {case['detail']}")
EOF

- uses: actions/upload-artifact@v4
if: always()
with:
# Screenshots, node logs and app logs for every corner. A failed walk
# is only useful if you can see what the app was showing.
name: e2e-evidence
path: |
e2e-report.json
e2e-work/*/app.log
e2e-work/*/node.log
e2e-work/*/failure.png
if-no-files-found: warn
retention-days: 14

# ── Package. Runs whatever gradle managed, and says so ──────────────────────
wheels:
name: wheels
Expand Down
2 changes: 1 addition & 1 deletion client/VENDORING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ source is the pair a bisect wants:
The tree's current recorded state — sha256-of-sha256s over every git-tracked
file under `client/` except this one:

**state digest:** `52941ae71c8cedf8b134f6464698fa82432b2e17700aff972aa02ac3a1e9030a`
**state digest:** `b07c80c55503d4082466878ab3fed24027983f88e45ad2371212b785cdf2ea63`

`packaging/check_vendoring.py` asserts it on every push, and refuses any
tracked file matching a §2 never-vendor class. **Any commit that touches
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/am.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "ማስተላለፍ ተሳክቷል! TX: {tx}",
"wallet_trust_degraded": "ስልክ ሥቅ ተዳክሞ ነበር",
"wallet_warning": "ማስጠንቀቂያ",
"claim_node_no_signer": "የእርስዎ ኖድ ሌላ ኖድ ከመያዙ በፊት መጀመር አለበት። ኖድዎን ይጀምሩ፣ ከዚያ እንደገና ይሞክሩ።",
"attestation_actions_desc": "ለዚህ መዝገብ ያሉ እርምጃዎች",
"chat_badge_message": "መልዕክት",
"chat_details": "ዓይነት {type} · ወሰን {scope} · ሁኔታ {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "نجح التحويل! TX: {tx}",
"wallet_trust_degraded": "تدهورت ثقة الأجهزة",
"wallet_warning": "تحذير",
"claim_node_no_signer": "يجب تشغيل عقدتك قبل أن تتمكن من المطالبة بعقدة أخرى. شغّل عقدتك، ثم حاول مرة أخرى.",
"attestation_actions_desc": "إجراءات هذا السجل",
"chat_badge_message": "رسالة",
"chat_details": "النوع {type} · النطاق {scope} · الحالة {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -2925,6 +2925,7 @@
"wallet_transfer_success": "ট্রান্সফার সফল! TX: {tx}",
"wallet_trust_degraded": "হার্ডওয়্যার বিশ্বাস হ্রাস পেয়েছে",
"wallet_warning": "সতর্কতা",
"claim_node_no_signer": "আরেকটি নোড দাবি করার আগে আপনার নোড চালু থাকতে হবে। আপনার নোড চালু করুন, তারপর আবার চেষ্টা করুন।",
"attestation_actions_desc": "এই রেকর্ডের জন্য পদক্ষেপ",
"chat_badge_message": "বার্তা",
"chat_details": "ধরন {type} · পরিসর {scope} · অবস্থা {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Überweisung erfolgreich! TX: {tx}",
"wallet_trust_degraded": "Hardware-Vertrauen herabgestuft",
"wallet_warning": "Warnung",
"claim_node_no_signer": "Ihr Node muss gestartet sein, bevor er einen anderen Knoten übernehmen kann. Starten Sie Ihren Node und versuchen Sie es erneut.",
"attestation_actions_desc": "Aktionen für diesen Datensatz",
"chat_badge_message": "NACHRICHT",
"chat_details": "Typ {type} · Bereich {scope} · Status {status}",
Expand Down
3 changes: 2 additions & 1 deletion client/androidApp/src/main/assets/localization/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -2993,7 +2993,8 @@
"wallet_transfer_note": "Transfer to another Base address for fiat cashout",
"wallet_transfer_success": "Transfer successful! TX: {tx}",
"wallet_trust_degraded": "Hardware Trust Degraded",
"wallet_warning": "Warning"
"wallet_warning": "Warning",
"claim_node_no_signer": "Your node must be started before it can claim another node. Start your node, then try again."
},
"moderation": {
"ladder": {
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "¡Transferencia exitosa! TX: {tx}",
"wallet_trust_degraded": "Confianza de Hardware Degradada",
"wallet_warning": "Advertencia",
"claim_node_no_signer": "Tu nodo debe estar iniciado antes de poder reclamar otro nodo. Inicia tu nodo e inténtalo de nuevo.",
"attestation_actions_desc": "Acciones para este registro",
"chat_badge_message": "MENSAJE",
"chat_details": "tipo {type} · ámbito {scope} · estado {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -2930,6 +2930,7 @@
"wallet_transfer_success": "انتقال با موفقیت انجام شد! TX: {tx}",
"wallet_trust_degraded": "افت اعتماد سخت‌افزاری",
"wallet_warning": "هشدار",
"claim_node_no_signer": "گرهٔ شما باید پیش از ادعای گره‌ای دیگر راه‌اندازی شده باشد. گرهٔ خود را راه‌اندازی کنید و دوباره تلاش کنید.",
"attestation_actions_desc": "اقدامات برای این رکورد",
"chat_badge_message": "پیام",
"chat_details": "نوع {type} · محدوده {scope} · وضعیت {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transfert réussi ! TX: {tx}",
"wallet_trust_degraded": "Confiance Matérielle Dégradée",
"wallet_warning": "Avertissement",
"claim_node_no_signer": "Votre nœud doit être démarré avant de pouvoir revendiquer un autre nœud. Démarrez votre nœud, puis réessayez.",
"attestation_actions_desc": "Actions pour cet enregistrement",
"chat_badge_message": "MESSAGE",
"chat_details": "type {type} · portée {scope} · statut {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ha.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Aika ya yi nasara! TX: {tx}",
"wallet_trust_degraded": "Tabbas Kayan Aiki Ya Rage",
"wallet_warning": "Gargaɗi",
"claim_node_no_signer": "Dole ne a fara kumburinka kafin ya iya karɓar wani kumburi. Fara kumburinka, sannan ka sake gwadawa.",
"attestation_actions_desc": "Ayyuka don wannan rikodin",
"chat_badge_message": "SAƘO",
"chat_details": "nau'i {type} · iyaka {scope} · matsayi {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "स्थानांतरण सफल! TX: {tx}",
"wallet_trust_degraded": "हार्डवेयर ट्रस्ट कम हुआ",
"wallet_warning": "चेतावनी",
"claim_node_no_signer": "किसी अन्य नोड का दावा करने से पहले आपका नोड शुरू होना चाहिए। अपना नोड शुरू करें, फिर दोबारा प्रयास करें।",
"attestation_actions_desc": "इस रिकॉर्ड के लिए कार्रवाइयाँ",
"chat_badge_message": "संदेश",
"chat_details": "प्रकार {type} · दायरा {scope} · स्थिति {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transfer berhasil! TX: {tx}",
"wallet_trust_degraded": "Kepercayaan Perangkat Keras Menurun",
"wallet_warning": "Peringatan",
"claim_node_no_signer": "Node Anda harus dijalankan terlebih dahulu sebelum dapat mengklaim node lain. Jalankan node Anda, lalu coba lagi.",
"attestation_actions_desc": "Tindakan untuk catatan ini",
"chat_badge_message": "PESAN",
"chat_details": "jenis {type} · lingkup {scope} · status {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Trasferimento riuscito! TX: {tx}",
"wallet_trust_degraded": "Fiducia Hardware Degradata",
"wallet_warning": "Avviso",
"claim_node_no_signer": "Il tuo nodo deve essere avviato prima di poter rivendicare un altro nodo. Avvia il tuo nodo, quindi riprova.",
"attestation_actions_desc": "Azioni per questo record",
"chat_badge_message": "MESSAGGIO",
"chat_details": "tipo {type} · ambito {scope} · stato {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "送金成功!TX: {tx}",
"wallet_trust_degraded": "ハードウェア信頼が低下しました",
"wallet_warning": "警告",
"claim_node_no_signer": "他のノードの所有権を取得するには、まずお客様のノードを起動する必要があります。ノードを起動してから、もう一度お試しください。",
"attestation_actions_desc": "このレコードに対する操作",
"chat_badge_message": "メッセージ",
"chat_details": "種別 {type} · スコープ {scope} · 状態 {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "전송 성공! TX: {tx}",
"wallet_trust_degraded": "하드웨어 신뢰 저하됨",
"wallet_warning": "경고",
"claim_node_no_signer": "노드를 시작해야 다른 노드의 소유권을 주장할 수 있습니다. 노드를 시작한 후 다시 시도하세요.",
"attestation_actions_desc": "이 레코드에 대한 작업",
"chat_badge_message": "메시지",
"chat_details": "유형 {type} · 범위 {scope} · 상태 {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/mr.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transfer यशful! TX: {tx}",
"wallet_trust_degraded": "हार्डवेअर विश्वास खालावला",
"wallet_warning": "इशारा",
"claim_node_no_signer": "आणखी एका नोडचा दावा करण्यापूर्वी तुमचा नोड सुरू असणे आवश्यक आहे. तुमचा नोड सुरू करा आणि नंतर पुन्हा प्रयत्न करा.",
"attestation_actions_desc": "या नोंदीसाठी क्रिया",
"chat_badge_message": "संदेश",
"chat_details": "प्रकार {type} · व्याप्ती {scope} · स्थिती {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/my.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transfer အောင်မြင်ful! TX: {tx}",
"wallet_trust_degraded": "Hardware ယုံကြည်မှု အားနည်းသွားပြီ",
"wallet_warning": "သတိပေး",
"claim_node_no_signer": "အခြား Node ကို ပိုင်ဆိုင်မှုပြောရန် သင်၏ node ကို အရင်စတင်ထားရမည်။ သင်၏ node ကို စတင်ပြီး ထပ်မံကြိုးစားပါ။",
"attestation_actions_desc": "ဤမှတ်တမ်းအတွက် လုပ်ဆောင်ချက်များ",
"chat_badge_message": "မက်ဆေ့ချ်",
"chat_details": "အမျိုးအစား {type} · scope {scope} · အခြေအနေ {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/pa.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "ਟ੍ਰਾਂਸਫਰ ਸਫਲ! TX: {tx}",
"wallet_trust_degraded": "ਹਾਰਡਵੇਅਰ ਭਰੋਸਾ ਘਟਿਆ",
"wallet_warning": "ਚੇਤਾਵਨੀ",
"claim_node_no_signer": "ਕਿਸੇ ਹੋਰ ਨੋਡ ਦਾ ਦਾਅਵਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡਾ ਨੋਡ ਸ਼ੁਰੂ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਆਪਣਾ ਨੋਡ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
"attestation_actions_desc": "ਇਸ ਰਿਕਾਰਡ ਲਈ ਕਾਰਵਾਈਆਂ",
"chat_badge_message": "ਸੁਨੇਹਾ",
"chat_details": "ਕਿਸਮ {type} · ਦਾਇਰਾ {scope} · ਸਥਿਤੀ {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transferência bem-sucedida! TX: {tx}",
"wallet_trust_degraded": "Confiança de Hardware Degradada",
"wallet_warning": "Aviso",
"claim_node_no_signer": "Seu nó precisa ser iniciado antes que possa reivindicar outro nó. Inicie seu nó e tente novamente.",
"attestation_actions_desc": "Ações para este registo",
"chat_badge_message": "MENSAGEM",
"chat_details": "tipo {type} · âmbito {scope} · estado {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Перевод успешен! TX: {tx}",
"wallet_trust_degraded": "Доверие к оборудованию ухудшено",
"wallet_warning": "Предупреждение",
"claim_node_no_signer": "Ваш узел должен быть запущен, прежде чем он сможет заявить права на другой узел. Запустите узел и повторите попытку.",
"attestation_actions_desc": "Действия для этой записи",
"chat_badge_message": "СООБЩЕНИЕ",
"chat_details": "тип {type} · область {scope} · статус {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/sw.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Uhamisho umefanikiwa! TX: {tx}",
"wallet_trust_degraded": "Kuaminika kwa Maunzi Kumedhoofika",
"wallet_warning": "Onyo",
"claim_node_no_signer": "Nodi yako inahitaji kuanzishwa kabla ya kudai nodi nyingine. Anzisha nodi yako, kisha ujaribu tena.",
"attestation_actions_desc": "Vitendo vya rekodi hii",
"chat_badge_message": "UJUMBE",
"chat_details": "aina {type} · wigo {scope} · hali {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/ta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "பரிமாற்றம் வெற்றிகரம்! TX: {tx}",
"wallet_trust_degraded": "Hardware நம்பகத்தன்மை Degraded",
"wallet_warning": "எச்சரிக்கை",
"claim_node_no_signer": "உங்கள் நோடு மற்றொரு நோடைக் கோரும் முன் தொடங்கப்பட்டிருக்க வேண்டும். உங்கள் நோடைத் தொடங்கி, மீண்டும் முயற்சிக்கவும்.",
"attestation_actions_desc": "இந்தப் பதிவுக்கான செயல்கள்",
"chat_badge_message": "செய்தி",
"chat_details": "வகை {type} · எல்லை {scope} · நிலை {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/te.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "బదిలీ విజయవంతమైంది! TX: {tx}",
"wallet_trust_degraded": "హార్డ్‌వేర్ నమ్మకం తగ్గింది",
"wallet_warning": "హెచ్చరిక",
"claim_node_no_signer": "మీ నోడ్ మరో నోడ్‌ను క్లెయిమ్ చేయడానికి ముందు ప్రారంభమై ఉండాలి. మీ నోడ్‌ను ప్రారంభించి, మళ్ళీ ప్రయత్నించండి.",
"attestation_actions_desc": "ఈ రికార్డుకు చర్యలు",
"chat_badge_message": "సందేశం",
"chat_details": "రకం {type} · పరిధి {scope} · స్థితి {status}",
Expand Down
1 change: 1 addition & 0 deletions client/androidApp/src/main/assets/localization/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@
"wallet_transfer_success": "Transfer สำเร็จful! TX: {tx}",
"wallet_trust_degraded": "ความน่าเชื่อถือของฮาร์ดแวร์ลดลง",
"wallet_warning": "คำเตือน",
"claim_node_no_signer": "โหนดของคุณต้องเริ่มทำงานก่อนจึงจะสามารถอ้างสิทธิ์โหนดอื่นได้ กรุณาเริ่มโหนดของคุณ แล้วลองอีกครั้ง",
"attestation_actions_desc": "การดำเนินการสำหรับระเบียนนี้",
"chat_badge_message": "ข้อความ",
"chat_details": "ประเภท {type} · ขอบเขต {scope} · สถานะ {status}",
Expand Down
Loading
Loading