Change CI to add test using ledger emulator
This commit is contained in:
parent
76034772cb
commit
d6e1dd1040
29
.github/workflows/cont_integration.yml
vendored
29
.github/workflows/cont_integration.yml
vendored
@ -172,3 +172,32 @@ jobs:
|
|||||||
run: rustup update
|
run: rustup update
|
||||||
- name: Check fmt
|
- name: Check fmt
|
||||||
run: cargo fmt --all -- --config format_code_in_doc_comments=true --check
|
run: cargo fmt --all -- --config format_code_in_doc_comments=true --check
|
||||||
|
|
||||||
|
test_harware_wallet:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
rust:
|
||||||
|
- version: 1.60.0 # STABLE
|
||||||
|
- version: 1.56.1 # MSRV
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Build simulator image
|
||||||
|
run: docker build -t hwi/ledger_emulator ./ci -f ci/Dockerfile.ledger
|
||||||
|
- name: Run simulator image
|
||||||
|
run: docker run --name simulator --network=host hwi/ledger_emulator &
|
||||||
|
- name: Install Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- name: Install python dependencies
|
||||||
|
run: pip install hwi==2.1.1 protobuf==3.20.1
|
||||||
|
- name: Set default toolchain
|
||||||
|
run: rustup default ${{ matrix.rust.version }}
|
||||||
|
- name: Set profile
|
||||||
|
run: rustup set profile minimal
|
||||||
|
- name: Update toolchain
|
||||||
|
run: rustup update
|
||||||
|
- name: Test
|
||||||
|
run: cargo test --features test-hardware-signer
|
||||||
|
9
ci/Dockerfile.ledger
Normal file
9
ci/Dockerfile.ledger
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Taken from bitcoindevkit/rust-hwi
|
||||||
|
FROM ghcr.io/ledgerhq/speculos
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install wget -y
|
||||||
|
RUN wget "https://github.com/LedgerHQ/speculos/blob/master/apps/nanos%23btc%232.1%231c8db8da.elf?raw=true" -O /speculos/btc.elf
|
||||||
|
ADD automation.json /speculos/automation.json
|
||||||
|
|
||||||
|
ENTRYPOINT ["python", "./speculos.py", "--automation", "file:automation.json", "--display", "headless", "--vnc-port", "41000", "btc.elf"]
|
30
ci/automation.json
Normal file
30
ci/automation.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"regexp": "Address \\(\\d/\\d\\)|Message hash \\(\\d/\\d\\)|Confirm|Fees|Review|Amount",
|
||||||
|
"actions": [
|
||||||
|
[ "button", 2, true ],
|
||||||
|
[ "button", 2, false ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Sign",
|
||||||
|
"conditions": [
|
||||||
|
[ "seen", false ]
|
||||||
|
],
|
||||||
|
"actions": [
|
||||||
|
[ "button", 2, true ],
|
||||||
|
[ "button", 2, false ],
|
||||||
|
[ "setbool", "seen", true ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regexp": "Approve|Sign|Accept",
|
||||||
|
"actions": [
|
||||||
|
[ "button", 3, true ],
|
||||||
|
[ "button", 3, false ]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user