@@ -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
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