ci: try uploading unsplit release package

This commit is contained in:
luochen570
2026-05-30 14:07:48 +08:00
parent add0a6758e
commit 8f6152a382

View File

@@ -108,31 +108,16 @@ jobs:
(cd dist-windows-cross && 7z a -tzip "${PACKAGE_NAME}.zip" "${PACKAGE_NAME}" >/dev/null) (cd dist-windows-cross && 7z a -tzip "${PACKAGE_NAME}.zip" "${PACKAGE_NAME}" >/dev/null)
(cd dist-windows-cross && sha256sum "${PACKAGE_NAME}.zip" > "${PACKAGE_NAME}.zip.sha256") (cd dist-windows-cross && sha256sum "${PACKAGE_NAME}.zip" > "${PACKAGE_NAME}.zip.sha256")
# 当前 Gitea 上传入口约 60 秒会返回 502大文件按 15 MiB 分片上传。 du -h "dist-windows-cross/${PACKAGE_NAME}.zip"
ZIP="dist-windows-cross/${PACKAGE_NAME}.zip"
split -b 15M -d -a 3 "$ZIP" "${ZIP}.part-"
(cd dist-windows-cross && sha256sum "${PACKAGE_NAME}.zip".part-* > "${PACKAGE_NAME}.zip.parts.sha256")
du -h "$ZIP" "${ZIP}".part-*
- name: Verify package - name: Verify package
run: | run: |
set -euo pipefail set -euo pipefail
test -s dist-windows-cross/chengnan-windows-x86_64-cross.zip test -s dist-windows-cross/chengnan-windows-x86_64-cross.zip
test -s dist-windows-cross/chengnan-windows-x86_64-cross.zip.part-000 test -s dist-windows-cross/chengnan-windows-x86_64-cross.zip.sha256
test -s dist-windows-cross/chengnan-windows-x86_64-cross.zip.parts.sha256
(cd dist-windows-cross && sha256sum -c chengnan-windows-x86_64-cross.zip.sha256) (cd dist-windows-cross && sha256sum -c chengnan-windows-x86_64-cross.zip.sha256)
(cd dist-windows-cross && sha256sum -c chengnan-windows-x86_64-cross.zip.parts.sha256)
7z l dist-windows-cross/chengnan-windows-x86_64-cross.zip | grep 'chengnan.exe' 7z l dist-windows-cross/chengnan-windows-x86_64-cross.zip | grep 'chengnan.exe'
7z l dist-windows-cross/chengnan-windows-x86_64-cross.zip | grep 'platforms/' 7z l dist-windows-cross/chengnan-windows-x86_64-cross.zip | grep 'platforms/'
python3 - <<'PY'
from pathlib import Path
limit = 20 * 1024 * 1024
for part in Path('dist-windows-cross').glob('chengnan-windows-x86_64-cross.zip.part-*'):
size = part.stat().st_size
print(part.name, size)
if size > limit:
raise SystemExit(f'{part} is too large for the current Gitea upload path')
PY
- name: Upload artifact - name: Upload artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@@ -141,8 +126,6 @@ jobs:
path: | path: |
dist-windows-cross/chengnan-windows-x86_64-cross.zip dist-windows-cross/chengnan-windows-x86_64-cross.zip
dist-windows-cross/chengnan-windows-x86_64-cross.zip.sha256 dist-windows-cross/chengnan-windows-x86_64-cross.zip.sha256
dist-windows-cross/chengnan-windows-x86_64-cross.zip.part-*
dist-windows-cross/chengnan-windows-x86_64-cross.zip.parts.sha256
if-no-files-found: error if-no-files-found: error
- name: Upload package to Gitea Packages - name: Upload package to Gitea Packages
@@ -174,10 +157,6 @@ jobs:
exit 1 exit 1
fi fi
} }
for part in dist-windows-cross/${PACKAGE_NAME}.zip.part-*; do upload_file "dist-windows-cross/${PACKAGE_NAME}.zip" "${API_BASE}/${PACKAGE_NAME}.zip"
upload_file "$part" "${API_BASE}/$(basename "$part")"
done
upload_file "dist-windows-cross/${PACKAGE_NAME}.zip.sha256" "${API_BASE}/${PACKAGE_NAME}.zip.sha256" upload_file "dist-windows-cross/${PACKAGE_NAME}.zip.sha256" "${API_BASE}/${PACKAGE_NAME}.zip.sha256"
upload_file "dist-windows-cross/${PACKAGE_NAME}.zip.parts.sha256" "${API_BASE}/${PACKAGE_NAME}.zip.parts.sha256"
echo "Package uploaded to: ${API_BASE}/" echo "Package uploaded to: ${API_BASE}/"
echo "Download all ${PACKAGE_NAME}.zip.part-* files, then reconstruct with: cat ${PACKAGE_NAME}.zip.part-* > ${PACKAGE_NAME}.zip"