Skip to content

Commit 0af7ae5

Browse files
committed
ci: fix auto release
1 parent 91c20b6 commit 0af7ae5

File tree

2 files changed

+26
-135
lines changed

2 files changed

+26
-135
lines changed

.github/workflows/release.yml

+26-121
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,21 @@ jobs:
2323
uses: actions/checkout@v4
2424
- name: Get the release version from the tag
2525
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
2727
- name: Show the version
2828
run: |
2929
echo "version is: $VERSION"
3030
- name: Check that tag version and Cargo.toml version are the same
3131
shell: bash
3232
run: |
33-
if ! grep -q "version = \"$VERSION\"" Cargo.toml; then
33+
if ! grep -q "version = \"$(echo $VERSION | sed 's/v\(.*\)-.*/\1/')\"" Cargo.toml; then
3434
echo "version does not match Cargo.toml" >&2
3535
exit 1
3636
fi
3737
- name: Create GitHub release
3838
env:
3939
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
4141
outputs:
4242
version: ${{ env.VERSION }}
4343

@@ -137,68 +137,34 @@ jobs:
137137
if: matrix.os == 'ubuntu-latest'
138138
shell: bash
139139
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
141142
142143
- name: Install Rust
143144
uses: dtolnay/rust-toolchain@master
144145
with:
145146
toolchain: ${{ matrix.rust }}
146147
target: ${{ matrix.target }}
147148

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 }}
175153

176-
- name: Build release binary
154+
- name: Set the release env variables
177155
shell: bash
178156
run: |
179-
${{ env.CARGO }} build --verbose --release ${{ env.TARGET_FLAGS }}
180157
if [ "${{ matrix.os }}" = "windows-latest" ]; then
181158
bin="target/${{ matrix.target }}/release/afrim-wish.exe"
182159
else
183160
bin="target/${{ matrix.target }}/release/afrim-wish"
184161
fi
185162
echo "BIN=$bin" >> $GITHUB_ENV
186163
187-
- name: Strip release binary (macos)
188-
if: matrix.os == 'macos-latest'
164+
- name: Strip release binary
189165
shell: bash
190166
run: strip "$BIN"
191167

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-
202168
- name: Determine archive name
203169
shell: bash
204170
run: |
@@ -208,10 +174,22 @@ jobs:
208174
- name: Creating directory for archive
209175
shell: bash
210176
run: |
211-
mkdir -p "$ARCHIVE"/{complete,doc}
177+
mkdir -p "$ARCHIVE"
212178
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"/
215193
216194
- name: Build archive (Windows)
217195
shell: bash
@@ -238,76 +216,3 @@ jobs:
238216
run: |
239217
version="${{ needs.create-release.outputs.version }}"
240218
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"

ci/ubuntu-install-packages

-14
This file was deleted.

0 commit comments

Comments
 (0)