-
Notifications
You must be signed in to change notification settings - Fork 9
175 lines (155 loc) · 4.53 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
name: CI
on:
pull_request:
merge_group:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
IROH_FORCE_STAGING_RELAYS: "1"
jobs:
build_and_test_rust:
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
name: Rust - Build and test
strategy:
fail-fast: false
matrix:
name: [ubuntu-latest, macOS-arm-latest, windows-latest]
rust: [stable]
include:
- name: ubuntu-latest
os: ubuntu-latest
release-os: linux
release-arch: amd64
runner: [linux, X64]
- name: macOS-arm-latest
os: macOS-latest
release-os: darwin
release-arch: aarch64
runner: [macOS, ARM64]
- name: windows-latest
os: windows
runner: [windows-latest]
steps:
- name: Checkout
uses: actions/checkout@master
with:
submodules: recursive
- name: Install ${{ matrix.rust }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: cargo test
run: cargo test
check_fmt_and_docs:
timeout-minutes: 30
name: Checking fmt and docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: fmt
run: cargo fmt -- --check
- name: Docs
run: cargo doc --all-features --no-deps --document-private-items
clippy_check:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: clippy check
run: cargo clippy --all-targets --bins --tests --benches
build_and_test_python:
name: Python - Build and test
timeout-minutes: 30
runs-on: [linux, x64]
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install virtualenv
run: pip install virtualenv
- name: Python tests
run: |
virtualenv venv
source venv/bin/activate
pip install setuptools pytest pytest-asyncio "maturin[patchelf]" uniffi-bindgen
maturin develop
pytest -v
build_and_test_swift:
name: Swift - Build and test
timeout-minutes: 30
runs-on: [macOS, ARM64]
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-ios,aarch64-apple-ios-sim,x86_64-apple-ios,aarch64-apple-darwin
- name: Swift tests
run: |
./make_swift.sh
cp -R Iroh.xcframework IrohLib/artifacts/
cd IrohLib
swift test
build_and_test_kotlin:
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
name: Kotlin - Build and test
strategy:
fail-fast: false
matrix:
name: [ubuntu-latest, macOS-arm-latest]
rust: [stable]
include:
- name: ubuntu-latest
os: linux
release-os: linux
release-arch: amd64
runner: [linux, X64]
- name: macOS-arm-latest
os: mac
release-os: darwin
release-arch: aarch64
runner: [macOS, ARM64]
# - name: windows-latest
# os: windows
# runner: [windows-latest]
steps:
- name: Checkout
uses: actions/checkout@master
with:
submodules: recursive
- name: Install ${{ matrix.rust }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: setup java
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '21'
- name: install kotlin
uses: arqu/setup-kotlin@main
- name: install ktlint
uses: arqu/action-ktlint-setup@main
- name: fetch jna
run: curl -L https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar -o jna.jar
- name: fetch kotlinx-coroutines
run: curl -L https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.6.4/kotlinx-coroutines-core-jvm-1.6.4.jar -o kotlinx-coroutines.jar
- name: run kotlin tests
env:
CLASSPATH: ./jna.jar:./kotlinx-coroutines.jar
TEST_OS: ${{ matrix.os }}
shell: bash
run: ./test_kotlin.sh