Skip to content

Commit 4f16212

Browse files
committed
ci: flatten artifacts before publishing release
1 parent 016ebc7 commit 4f16212

1 file changed

Lines changed: 23 additions & 15 deletions

File tree

.github/workflows/release.yml

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,17 @@ jobs:
6262
run: |
6363
set -euo pipefail
6464
VERSION=$(node -p "require('./package.json').version")
65-
mkdir -p release-artifacts "release-artifacts/dmg-root-${{ matrix.arch }}"
65+
mkdir -p release-artifacts "release-dmg-root-${{ matrix.arch }}"
6666
6767
ditto "src-tauri/target/release/bundle/macos/Codex Monitor.app" \
68-
"release-artifacts/dmg-root-${{ matrix.arch }}/Codex Monitor.app"
68+
"release-dmg-root-${{ matrix.arch }}/Codex Monitor.app"
6969
7070
ditto -c -k --keepParent \
7171
"src-tauri/target/release/bundle/macos/Codex Monitor.app" \
7272
"release-artifacts/CodexMonitor_${VERSION}_${{ matrix.arch }}.zip"
7373
7474
hdiutil create -volname "Codex Monitor" \
75-
-srcfolder "release-artifacts/dmg-root-${{ matrix.arch }}" \
75+
-srcfolder "release-dmg-root-${{ matrix.arch }}" \
7676
-ov -format UDZO \
7777
"release-artifacts/CodexMonitor_${VERSION}_${{ matrix.arch }}.dmg"
7878
@@ -84,7 +84,10 @@ jobs:
8484
uses: actions/upload-artifact@v4
8585
with:
8686
name: macos-artifacts-${{ matrix.arch }}
87-
path: release-artifacts/*
87+
path: |
88+
release-artifacts/*.zip
89+
release-artifacts/*.dmg
90+
release-artifacts/*.app.tar.gz
8891
8992
build_linux:
9093
name: Linux unsigned bundles (${{ matrix.arch }})
@@ -200,27 +203,32 @@ jobs:
200203
- name: Normalize filenames and generate checksums
201204
run: |
202205
set -euo pipefail
206+
rm -rf release-upload
207+
mkdir -p release-upload
208+
203209
while IFS= read -r -d '' artifact; do
204-
dir=$(dirname "$artifact")
205210
file=$(basename "$artifact")
206211
normalized="${file// /.}"
207-
if [ "$file" != "$normalized" ]; then
208-
mv "$artifact" "${dir}/${normalized}"
212+
target="release-upload/${normalized}"
213+
if [ -e "$target" ]; then
214+
echo "Duplicate release artifact filename after normalization: ${normalized}"
215+
exit 1
209216
fi
217+
cp "$artifact" "$target"
210218
done < <(find release-artifacts -type f -print0)
211219
212-
find release-artifacts -type f | sort
213-
(cd release-artifacts && sha256sum * > SHA256SUMS.txt)
220+
find release-upload -maxdepth 1 -type f | sort
221+
(cd release-upload && sha256sum * > SHA256SUMS.txt)
214222
215223
- name: Build release notes
216224
run: |
217225
set -euo pipefail
218226
VERSION=$(node -p "require('./package.json').version")
219227
LAST_TAG=$(git tag --sort=-version:refname | grep -v "^v${VERSION}$" | head -n 1 || true)
220228
if [ -n "$LAST_TAG" ]; then
221-
git log "${LAST_TAG}..${GITHUB_SHA}" --pretty=format:"%s" > release-artifacts/release-commits.txt
229+
git log "${LAST_TAG}..${GITHUB_SHA}" --pretty=format:"%s" > release-upload/release-commits.txt
222230
else
223-
git log "${GITHUB_SHA}" --pretty=format:"%s" > release-artifacts/release-commits.txt
231+
git log "${GITHUB_SHA}" --pretty=format:"%s" > release-upload/release-commits.txt
224232
fi
225233
226234
{
@@ -229,8 +237,8 @@ jobs:
229237
echo "macOS and Windows artifacts are not notarized or code-signed with a paid certificate."
230238
echo
231239
echo "## Changes"
232-
sed 's/^/- /' release-artifacts/release-commits.txt
233-
} > release-artifacts/release-notes.md
240+
sed 's/^/- /' release-upload/release-commits.txt
241+
} > release-upload/release-notes.md
234242
235243
- name: Create GitHub release
236244
env:
@@ -239,13 +247,13 @@ jobs:
239247
set -euo pipefail
240248
VERSION=$(node -p "require('./package.json').version")
241249
mapfile -t artifacts < <(
242-
find release-artifacts -maxdepth 1 -type f \
250+
find release-upload -maxdepth 1 -type f \
243251
! -name release-notes.md \
244252
! -name release-commits.txt \
245253
| sort
246254
)
247255
gh release create "v${VERSION}" \
248256
--title "v${VERSION}" \
249-
--notes-file release-artifacts/release-notes.md \
257+
--notes-file release-upload/release-notes.md \
250258
--target "$GITHUB_SHA" \
251259
"${artifacts[@]}"

0 commit comments

Comments
 (0)