Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
1dbc86b
Enhance E2E test workflow with Docker support
Timi16 Dec 18, 2025
4528c39
Remove timeout from ZecKit Devnet startup command
Timi16 Dec 18, 2025
00a82ab
Enhance cleanup and startup processes in e2e-test.yml
Timi16 Dec 18, 2025
eb61619
Refactor e2e-test workflow for better readability
Timi16 Dec 18, 2025
af34980
Correct name of E2E test suite in workflow
Timi16 Dec 18, 2025
dd67856
Enhance E2E test workflow with fresh start option
Timi16 Dec 19, 2025
abb0197
Improve timeout management in e2e-test workflow
Timi16 Dec 19, 2025
f4bdebf
Adjust timeout and improve logging in e2e tests
Timi16 Dec 19, 2025
68cb2f3
Refactor e2e-test workflow for clarity and efficiency
Timi16 Dec 19, 2025
37a3acc
Adjust timeout and messages in e2e test workflow
Timi16 Dec 19, 2025
6e28f13
Refactor e2e-test.yml for improved readability
Timi16 Dec 19, 2025
4e0fa26
Increase service health check timeout to 10 minutes
Timi16 Dec 19, 2025
28c5c1d
Change ZecKit Devnet command to use fresh backend
Timi16 Dec 19, 2025
80af1e2
Refactor e2e-test workflow for clarity and efficiency
Timi16 Dec 19, 2025
992b64e
Implement healthcheck for zaino service
Timi16 Dec 19, 2025
a452b29
Changing the name from zecdev to zeckit
Timi16 Dec 30, 2025
adc0d57
use Zebra validateaddress RPC instead of regex
Timi16 Dec 30, 2025
6025bd3
fix: use Zebra's generate RPC method for mining
Timi16 Dec 30, 2025
522eb92
Adding Faucet in rust
Timi16 Jan 10, 2026
92371b4
Adding Faucet in rust
Timi16 Jan 10, 2026
68301ef
Adding docker compose yml fixes Path
Timi16 Jan 10, 2026
4e7a7fd
Adding fixes in Dockerfile and Changing cargo file to 2021
Timi16 Jan 10, 2026
a424687
Making librustzcash used instead of rpc
Timi16 Jan 11, 2026
7abbc03
Fixing faucet
Timi16 Jan 16, 2026
80a0901
Changing compile time
Timi16 Jan 16, 2026
e9cf453
hiding logs
Timi16 Jan 17, 2026
27acefd
Demonstration to oscar
Timi16 Jan 17, 2026
055d4ec
Revert to stable version
Timi16 Jan 17, 2026
350cf03
Fixing logs
Timi16 Jan 19, 2026
a0f0c9b
Adding Zingo container removal
Timi16 Jan 21, 2026
8f8e16a
Added fixes to archietecture
Timi16 Jan 22, 2026
3287e70
Adding stable version of zaino fixed syncing Added new endpoint to ca…
Timi16 Jan 26, 2026
66fc13f
Fixing Issues Stated in Milestone 2 and Optimized codebase
Timi16 Feb 7, 2026
4bc7ac8
Removingg Zcash params
Timi16 Feb 7, 2026
2fd1834
Fixing Requested reviews and using librustzcash
Timi16 Feb 12, 2026
c96e90a
Adding logs
Timi16 Feb 12, 2026
6b0387c
Resolving old reviews
Timi16 Feb 12, 2026
6ac2e6f
feat(workflow): default build action
Great-DoA Feb 20, 2026
3f4104b
chore: ignore zcash-params directory
Great-DoA Feb 20, 2026
37d31da
Update e2e-test.yml
Great-DoA Feb 20, 2026
638a500
fix(zingo): dependency update
Great-DoA Feb 20, 2026
0c64a6a
fix(zingo): prebuild var
Great-DoA Feb 20, 2026
b788112
feat(action): add action workflow
Great-DoA Feb 20, 2026
6f123d0
Merge branch 'm3-implementation' of https://github.com/intelliDean/Ze…
devine200 Mar 11, 2026
78a6f32
addition of latest pulls
devine200 Mar 11, 2026
8d98f39
feature: update to e2e-test
devine200 Mar 11, 2026
70083ad
feature: update to build flow to only build additional dependencies
devine200 Mar 11, 2026
792ff12
feature: update to build flow to only build additional dependencies
devine200 Mar 11, 2026
116b6dd
Add CLI release workflow
devine200 Mar 11, 2026
140c244
update to updated baranhced in build
devine200 Mar 11, 2026
3987bfd
addition of cargo lock
devine200 Mar 11, 2026
bcc8370
addition of cargo lock
devine200 Mar 11, 2026
f34d75a
addition of cargo lock
devine200 Mar 11, 2026
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
27 changes: 17 additions & 10 deletions .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ on:
branches:
- main
- m3-implementation
paths:
- 'docker/**'
- 'zeckit-faucet/**'
workflow_dispatch:

permissions:
Expand All @@ -14,6 +17,7 @@ permissions:
jobs:
build-and-push:
runs-on: ubuntu-latest

strategy:
matrix:
include:
Expand All @@ -31,29 +35,32 @@ jobs:
context: ./zeckit-faucet

steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: docker/setup-buildx-action@v3

- name: Login to GHCR
uses: docker/login-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Lowercase repo
id: repo
shell: bash
run: echo "name=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT

- name: Build and push
uses: docker/build-push-action@v6
with:
context: ${{ matrix.context }}
push: true
tags: ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64
tags: |
ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:latest
ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:${{ github.sha }}
ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:${{ github.ref_name }}
cache-from: |
type=registry,ref=ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:buildcache
cache-to: |
type=registry,ref=ghcr.io/${{ steps.repo.outputs.name }}/${{ matrix.service }}:buildcache,mode=max

160 changes: 160 additions & 0 deletions .github/workflows/ci-action-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# ============================================================
# ZecKit – CI Self-Test for the Published Action
# ============================================================
# Exercises the root action.yml and the reusable golden-e2e
# workflow against both backends on every push/PR to main.
#
# This is also the workflow that prospective callers can use as
# a copy-paste reference for their own repos.
# ============================================================

name: Action CI Self-Test

on:
push:
branches:
- main
- m3-implementation
- 'release/**'
pull_request:
branches:
- main
- m3-implementation
workflow_dispatch:
inputs:
backend:
description: 'Backend to test (zaino | lwd | both)'
required: false
default: 'both'
upload_artifacts:
description: 'Artifact upload policy (always | on-failure | never)'
required: false
default: 'on-failure'

permissions:
contents: read
packages: read

# ============================================================
# STRATEGY MATRIX
# ============================================================
jobs:

# ----------------------------------------------------------
# Determine which backends to run based on trigger
# ----------------------------------------------------------
set-matrix:
name: Set test matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- name: Build backend matrix
id: matrix
shell: bash
run: |
requested="${{ github.event.inputs.backend }}"

if [[ "$requested" == "zaino" ]]; then
echo 'matrix={"backend":["zaino"]}' >> "$GITHUB_OUTPUT"
elif [[ "$requested" == "lwd" ]]; then
echo 'matrix={"backend":["lwd"]}' >> "$GITHUB_OUTPUT"
else
# Default: both backends
echo 'matrix={"backend":["zaino","lwd"]}' >> "$GITHUB_OUTPUT"
fi

# ----------------------------------------------------------
# Run the golden E2E flow via the COMPOSITE ACTION directly
# ----------------------------------------------------------
composite-action-test:
name: "Composite Action – ${{ matrix.backend }}"
needs: set-matrix
runs-on: ubuntu-latest
timeout-minutes: 30

strategy:
fail-fast: false
matrix: ${{ fromJson(needs.set-matrix.outputs.matrix) }}

steps:
- name: Checkout ZecKit
uses: actions/checkout@v4

- name: Run ZecKit E2E composite action (self-test)
id: e2e
uses: ./
with:
backend: ${{ matrix.backend }}
startup_timeout_minutes: '10'
block_wait_seconds: '75'
send_amount: '0.05'
send_memo: 'CI self-test – ${{ matrix.backend }}'
upload_artifacts: ${{ github.event.inputs.upload_artifacts || 'on-failure' }}
ghcr_token: ${{ secrets.GITHUB_TOKEN }}

- name: Print action outputs
if: always()
shell: bash
run: |
echo "unified_address : ${{ steps.e2e.outputs.unified_address }}"
echo "transparent_address : ${{ steps.e2e.outputs.transparent_address }}"
echo "shield_txid : ${{ steps.e2e.outputs.shield_txid }}"
echo "send_txid : ${{ steps.e2e.outputs.send_txid }}"
echo "final_orchard_balance : ${{ steps.e2e.outputs.final_orchard_balance }} ZEC"
echo "block_height : ${{ steps.e2e.outputs.block_height }}"
echo "test_result : ${{ steps.e2e.outputs.test_result }}"

- name: Assert test_result is 'pass'
shell: bash
run: |
result="${{ steps.e2e.outputs.test_result }}"
if [[ "$result" != "pass" ]]; then
echo "::error::Golden E2E returned test_result='$result' (expected 'pass')."
exit 1
fi
echo "✓ test_result=pass"

# ----------------------------------------------------------
# Run the same flow via the REUSABLE WORKFLOW
# (validates workflow_call path end-to-end)
# ----------------------------------------------------------
reusable-workflow-test:
name: "Reusable Workflow – zaino"
needs: set-matrix
uses: ./.github/workflows/golden-e2e.yml
with:
backend: 'zaino'
startup_timeout_minutes: 10
block_wait_seconds: 75
send_amount: 0.05
send_memo: 'Reusable workflow self-test'
upload_artifacts: 'on-failure'
secrets:
ghcr_token: ${{ secrets.GITHUB_TOKEN }}

# ----------------------------------------------------------
# Gate: all matrix jobs must pass
# ----------------------------------------------------------
ci-gate:
name: CI Gate
needs:
- composite-action-test
- reusable-workflow-test
runs-on: ubuntu-latest
if: always()
steps:
- name: Check all jobs
shell: bash
run: |
composite="${{ needs.composite-action-test.result }}"
reusable="${{ needs.reusable-workflow-test.result }}"

echo "composite-action-test : $composite"
echo "reusable-workflow-test: $reusable"

if [[ "$composite" != "success" || "$reusable" != "success" ]]; then
echo "::error::One or more E2E jobs failed."
exit 1
fi
echo "✓ All CI jobs passed."
Loading