ci: try uploading unsplit release package
This commit is contained in:
@@ -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"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user