36
36
runs-on : ubuntu-latest
37
37
container : debian:buster
38
38
steps :
39
- - uses : actions/checkout@v3
39
+ - uses : actions/checkout@v4
40
40
- name : Prerequisites
41
41
run : apt-get update && apt-get install --no-install-recommends -y ca-certificates curl gcc libc-dev # gcc is required as OS abstraction
42
42
- name : install Rust via Rustup
@@ -47,18 +47,18 @@ jobs:
47
47
test :
48
48
runs-on : ubuntu-latest
49
49
steps :
50
- - uses : actions/checkout@v3
51
- - uses : dtolnay/rust-toolchain@stable
52
- - uses : Swatinem/rust-cache@v2
53
- - name : Setup dependencies
54
- run :
55
- sudo apt-get install tree
56
- - uses : extractions/setup-just@v1
57
- - name : test
58
- env :
59
- CI : true
60
- GITOXIDE_TEST_IGNORE_ARCHIVES : 1
61
- run : just ci-test
50
+ - uses : actions/checkout@v4
51
+ - uses : dtolnay/rust-toolchain@stable
52
+ - uses : Swatinem/rust-cache@v2
53
+ - name : Setup dependencies
54
+ run :
55
+ sudo apt-get install tree
56
+ - uses : extractions/setup-just@v2
57
+ - name : test
58
+ env :
59
+ CI : true
60
+ GIX_TEST_IGNORE_ARCHIVES : 1
61
+ run : just ci-test
62
62
63
63
test-fast :
64
64
strategy :
69
69
- ubuntu-latest
70
70
runs-on : ${{ matrix.os }}
71
71
steps :
72
- - uses : actions/checkout@v3
72
+ - uses : actions/checkout@v4
73
73
- uses : dtolnay/rust-toolchain@stable
74
74
- uses : Swatinem/rust-cache@v2
75
75
- name : Setup dependencies (macos)
79
79
- name : " cargo check default features"
80
80
if : startsWith(matrix.os, 'windows')
81
81
run : cargo check --all --bins --examples
82
- - run : |
83
- # it should never be a failure not to get the caches, as they can be regenerated.
84
- git lfs fetch && git lfs checkout || true
85
- - uses : taiki-e/install-action@v1
82
+ - uses : taiki-e/install-action@v2
86
83
with :
87
84
tool : nextest
88
85
- name : " Test (nextest)"
@@ -94,15 +91,15 @@ jobs:
94
91
matrix :
95
92
target : [ armv7-linux-androideabi ]
96
93
steps :
97
- - uses : actions/checkout@v3
94
+ - uses : actions/checkout@v4
98
95
- uses : dtolnay/rust-toolchain@stable
99
96
- uses : Swatinem/rust-cache@v2
100
97
- name : Install Rust
101
98
uses : dtolnay/rust-toolchain@master
102
99
with :
103
100
toolchain : stable
104
101
targets : ${{ matrix.target }}
105
- - uses : taiki-e/install-action@v1
102
+ - uses : taiki-e/install-action@v2
106
103
with :
107
104
tool : cross
108
105
- name : " check"
@@ -135,7 +132,7 @@ jobs:
135
132
target : i686-pc-windows-gnu
136
133
runs-on : ${{ matrix.os }}
137
134
steps :
138
- - uses : actions/checkout@v3
135
+ - uses : actions/checkout@v4
139
136
- name : Install Rust
140
137
uses : dtolnay/rust-toolchain@master
141
138
with :
@@ -150,20 +147,20 @@ jobs:
150
147
- name : " Install prerequisites"
151
148
run : vcpkg install zlib:x64-windows-static-md
152
149
- name : " Installation from crates.io: gitoxide"
153
- run : cargo +${{ matrix.rust }} install --target ${{ matrix.target }} --target-dir install-artifacts --debug --force gitoxide
150
+ run : cargo +${{ matrix.rust }} install --target ${{ matrix.target }} --no-default-features --features max-pure -- target-dir install-artifacts --debug --force gitoxide
154
151
shell : msys2 {0}
155
152
156
153
lint :
157
154
runs-on : ubuntu-latest
158
155
steps :
159
- - uses : actions/checkout@v3
156
+ - uses : actions/checkout@v4
160
157
- uses : dtolnay/rust-toolchain@master
161
158
with :
162
159
toolchain : stable
163
160
components : clippy,rustfmt
164
- - uses : extractions/setup-just@v1
161
+ - uses : extractions/setup-just@v2
165
162
- name : Run cargo clippy
166
- run : just clippy -D warnings
163
+ run : just clippy -D warnings -A unknown-lints
167
164
- name : Run cargo doc
168
165
run : just doc
169
166
- name : Run cargo fmt
@@ -176,7 +173,7 @@ jobs:
176
173
# Let's not fail CI for this, it will fail locally often enough, and a crate a little bigger
177
174
# than allows is no problem either if it comes to that.
178
175
just check-size || true
179
-
176
+
180
177
cargo-deny :
181
178
runs-on : ubuntu-latest
182
179
strategy :
@@ -189,10 +186,11 @@ jobs:
189
186
continue-on-error : ${{ matrix.checks == 'advisories' }}
190
187
191
188
steps :
192
- - uses : actions/checkout@v3
193
- - uses : EmbarkStudios/cargo-deny-action@v1
194
- with :
195
- command : check ${{ matrix.checks }}
189
+ - uses : actions/checkout@v4
190
+ - uses : EmbarkStudios/cargo-deny-action@v1
191
+ with :
192
+ command : check ${{ matrix.checks }}
193
+
196
194
wasm :
197
195
name : WebAssembly
198
196
runs-on : ubuntu-latest
@@ -213,3 +211,32 @@ jobs:
213
211
name : crates with 'wasm' feature
214
212
- run : cd gix-pack && cargo build --all-features --target ${{ matrix.target }}
215
213
name : gix-pack with all features (including wasm)
214
+
215
+ check-packetline :
216
+ strategy :
217
+ fail-fast : false
218
+ matrix :
219
+ os :
220
+ - ubuntu-latest
221
+ # We consider this script read-only and its effect is the same everywhere.
222
+ # However, when changes are made to `etc/copy-packetline.sh`, re-enable the other platforms for testing.
223
+ # - macos-latest
224
+ # - windows-latest
225
+ runs-on : ${{ matrix.os }}
226
+ defaults :
227
+ run :
228
+ shell : bash
229
+ steps :
230
+ - uses : actions/checkout@v4
231
+ - name : Check that working tree is initially clean
232
+ run : |
233
+ set -x
234
+ git status
235
+ git diff --exit-code
236
+ - name : Regenerate gix-packetline-blocking/src
237
+ run : etc/copy-packetline.sh
238
+ - name : Check that gix-packetline-blocking/src was already up to date
239
+ run : |
240
+ set -x
241
+ git status
242
+ git diff --exit-code
0 commit comments