@@ -23,21 +23,21 @@ jobs:
23
23
uses : actions/checkout@v4
24
24
- name : Get the release version from the tag
25
25
if : env.VERSION == ''
26
- run : echo "VERSION=$(echo $ {{ github.ref_name }} | sed 's/v\(.*\)-.*/\1/') " >> $GITHUB_ENV
26
+ run : echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
27
27
- name : Show the version
28
28
run : |
29
29
echo "version is: $VERSION"
30
30
- name : Check that tag version and Cargo.toml version are the same
31
31
shell : bash
32
32
run : |
33
- if ! grep -q "version = \"$VERSION\"" Cargo.toml; then
33
+ if ! grep -q "version = \"$(echo $ VERSION | sed 's/v\(.*\)-.*/\1/') \"" Cargo.toml; then
34
34
echo "version does not match Cargo.toml" >&2
35
35
exit 1
36
36
fi
37
37
- name : Create GitHub release
38
38
env :
39
39
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
40
- run : gh release create v $VERSION --verify-tag --draft --title $VERSION
40
+ run : gh release create $VERSION --verify-tag --draft --title $VERSION
41
41
outputs :
42
42
version : ${{ env.VERSION }}
43
43
@@ -137,68 +137,34 @@ jobs:
137
137
if : matrix.os == 'ubuntu-latest'
138
138
shell : bash
139
139
run : |
140
- ci/ubuntu-install-packages
140
+ sudo apt-get update
141
+ sudo apt-get install -y --no-install-recommends --allow-unauthenticated pkg-config libx11-dev
141
142
142
143
- name : Install Rust
143
144
uses : dtolnay/rust-toolchain@master
144
145
with :
145
146
toolchain : ${{ matrix.rust }}
146
147
target : ${{ matrix.target }}
147
148
148
- - name : Use Cross
149
- if : matrix.os == 'ubuntu-latest' && matrix.target != ''
150
- shell : bash
151
- run : |
152
- # In the past, new releases of 'cross' have broken CI. So for now, we
153
- # pin it. We also use their pre-compiled binary releases because cross
154
- # has over 100 dependencies and takes a bit to compile.
155
- dir="$RUNNER_TEMP/cross-download"
156
- mkdir "$dir"
157
- echo "$dir" >> $GITHUB_PATH
158
- cd "$dir"
159
- curl -LO "https://github.com/cross-rs/cross/releases/download/$CROSS_VERSION/cross-x86_64-unknown-linux-musl.tar.gz"
160
- tar xf cross-x86_64-unknown-linux-musl.tar.gz
161
- echo "CARGO=cross" >> $GITHUB_ENV
162
-
163
- - name : Set target variables
164
- shell : bash
165
- run : |
166
- echo "TARGET_FLAGS=--target ${{ matrix.target }}" >> $GITHUB_ENV
167
- echo "TARGET_DIR=./target/${{ matrix.target }}" >> $GITHUB_ENV
168
-
169
- - name : Show command used for Cargo
170
- shell : bash
171
- run : |
172
- echo "cargo command is: ${{ env.CARGO }}"
173
- echo "target flag is: ${{ env.TARGET_FLAGS }}"
174
- echo "target dir is: ${{ env.TARGET_DIR }}"
149
+ - uses : actions-rs/cargo@v1
150
+ with :
151
+ command : build
152
+ args : --verbose --release --locked --target ${{ matrix.target }}
175
153
176
- - name : Build release binary
154
+ - name : Set the release env variables
177
155
shell : bash
178
156
run : |
179
- ${{ env.CARGO }} build --verbose --release ${{ env.TARGET_FLAGS }}
180
157
if [ "${{ matrix.os }}" = "windows-latest" ]; then
181
158
bin="target/${{ matrix.target }}/release/afrim-wish.exe"
182
159
else
183
160
bin="target/${{ matrix.target }}/release/afrim-wish"
184
161
fi
185
162
echo "BIN=$bin" >> $GITHUB_ENV
186
163
187
- - name : Strip release binary (macos)
188
- if : matrix.os == 'macos-latest'
164
+ - name : Strip release binary
189
165
shell : bash
190
166
run : strip "$BIN"
191
167
192
- - name : Strip release binary (cross)
193
- if : env.CARGO == 'cross'
194
- shell : bash
195
- run : |
196
- docker run --rm -v \
197
- "$PWD/target:/target:Z" \
198
- "ghcr.io/cross-rs/${{ matrix.target }}:main" \
199
- "${{ matrix.strip }}" \
200
- "/$BIN"
201
-
202
168
- name : Determine archive name
203
169
shell : bash
204
170
run : |
@@ -208,10 +174,22 @@ jobs:
208
174
- name : Creating directory for archive
209
175
shell : bash
210
176
run : |
211
- mkdir -p "$ARCHIVE"/{complete,doc}
177
+ mkdir -p "$ARCHIVE"
212
178
cp "$BIN" "$ARCHIVE"/
213
- cp {README.md,LICENSE,demo.gif} "$ARCHIVE"/
214
- cp {CHANGELOG.md} "$ARCHIVE"/doc/
179
+ cp {README.md,LICENSE,demo.gif,CHANGELOG.md} "$ARCHIVE"/
180
+
181
+ - uses : actions/checkout@v4
182
+ with :
183
+ repository : pythonbrad/afrim-man
184
+ fetch-depth : 1
185
+ path : afrim-man
186
+
187
+ - name : Build and Add documentation
188
+ shell : bash
189
+ run : |
190
+ ${{ env.CARGO }} install mdbook
191
+ mdbook build afrim-man
192
+ cp -r afrim-man/book "$ARCHIVE"/
215
193
216
194
- name : Build archive (Windows)
217
195
shell : bash
@@ -238,76 +216,3 @@ jobs:
238
216
run : |
239
217
version="${{ needs.create-release.outputs.version }}"
240
218
gh release upload "$version" ${{ env.ASSET }} ${{ env.ASSET_SUM }}
241
-
242
- build-release-deb :
243
- name : build-release-deb
244
- needs : ["create-release"]
245
- runs-on : ubuntu-latest
246
- env :
247
- TARGET : x86_64-unknown-linux-musl
248
- # Emit backtraces on panics.
249
- RUST_BACKTRACE : 1
250
-
251
- steps :
252
- - name : Checkout the repo
253
- uses : actions/checkout@v4
254
-
255
- - name : Install packages (Ubuntu)
256
- shell : bash
257
- run : |
258
- ci/ubuntu-install-packages
259
-
260
- - name : Install Rust
261
- uses : dtolnay/rust-toolchain@master
262
- with :
263
- toolchain : nightly
264
- target : ${{ env.TARGET }}
265
-
266
- - name : Install cargo-deb
267
- shell : bash
268
- run : |
269
- cargo install cargo-deb
270
-
271
- # 'cargo deb' does not seem to provide a way to specify an asset that is
272
- # created at build time, such as afrim-wish's man page. To work around this,
273
- # we force a debug build, copy out the man page (and shell completions)
274
- # produced from that build, put it into a predictable location and then
275
- # build the deb, which knows where to look.
276
- - name : Build debug binary to create release assets
277
- shell : bash
278
- run : |
279
- cargo build --target ${{ env.TARGET }}
280
- bin="target/${{ env.TARGET }}/debug/afrim-wish"
281
- echo "BIN=$bin" >> $GITHUB_ENV
282
-
283
- - name : Create deployment directory
284
- shell : bash
285
- run : |
286
- dir=deployment/deb
287
- mkdir -p "$dir"
288
- echo "DEPLOY_DIR=$dir" >> $GITHUB_ENV
289
-
290
- - name : Build release binary
291
- shell : bash
292
- run : |
293
- cargo deb --profile deb --target ${{ env.TARGET }}
294
- version="${{ needs.create-release.outputs.version }}"
295
- echo "DEB_DIR=target/${{ env.TARGET }}/debian" >> $GITHUB_ENV
296
- echo "DEB_NAME=afrim-wish-$version-1-amd64.deb" >> $GITHUB_ENV
297
-
298
- - name : Create sha256 sum of deb file
299
- shell : bash
300
- run : |
301
- cd "$DEB_DIR"
302
- sum="$DEB_NAME.sha256"
303
- shasum -a 256 "$DEB_NAME" > "$sum"
304
- echo "SUM=$sum" >> $GITHUB_ENV
305
-
306
- - name : Upload release archive
307
- env :
308
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
309
- shell : bash
310
- run : |
311
- cd "$DEB_DIR"
312
- version="${{ needs.create-release.outputs.version }}"
313
- gh release upload "$version" "$DEB_NAME" "$SUM"
0 commit comments