-
Notifications
You must be signed in to change notification settings - Fork 32
131 lines (123 loc) · 3.46 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Run cargo clippy, cargo fmt, build and Unit+Integration tests
on:
push:
branches:
master
pull_request:
workflow_dispatch:
inputs:
name:
description: 'Manually triggered'
env:
CARGO_TERM_COLOR: always
jobs:
clippy:
name: Run static analysis
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
strategy:
matrix:
target: ["nanos", "nanox", "nanosplus"]
package: [include_gif, testmacro, ledger_secure_sdk_sys, ledger_device_sdk]
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cargo update
uses: actions-rs/cargo@v1
with:
command: update
args: -p [email protected] --precise 0.5.5
- name: Cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -p ${{ matrix.package }} --target ${{ matrix.target }}
clippy-cargo-ledger:
name: Run static analysis for cargo-ledger
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cargo clippy for cargo-ledger
uses: actions-rs/cargo@v1
with:
command: clippy
args: -p cargo-ledger --no-deps
toolchain: "+1.72.0"
format:
name: Check code formatting
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all --check
build:
name: Build SDK
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
strategy:
matrix:
target: ["nanos", "nanox", "nanosplus"]
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cargo update
uses: actions-rs/cargo@v1
with:
command: update
args: -p [email protected] --precise 0.5.5
- name: Cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: -p ledger_device_sdk --target ${{ matrix.target }}
build-cargo-ledger:
name: Build SDK
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cargo update
uses: actions-rs/cargo@v1
with:
command: update
args: -p [email protected] --precise 0.5.5
- name: Cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: -p cargo-ledger
toolchain: "+1.72.0"
test:
name: Run unit and integration tests
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest
strategy:
matrix:
target: ["nanos", "nanox", "nanosplus"]
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cargo update
uses: actions-rs/cargo@v1
with:
command: update
args: -p [email protected] --precise 0.5.5
- name: Unit tests
uses: actions-rs/cargo@v1
with:
command: test
args: -p ledger_device_sdk --target ${{ matrix.target }} --features speculos