Ai
1 Star 0 Fork 0

lpwm/python-build-standalone

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Justfile 4.34 KB
一键复制 编辑 原始数据 按行查看 历史
# Diff 2 releases using diffocope.
diff a b:
diffoscope \
--html build/diff.html \
--exclude 'python/build/**' \
--exclude-command '^readelf.*' \
--exclude-command '^xxd.*' \
--exclude-command '^objdump.*' \
--exclude-command '^strings.*' \
--max-report-size 9999999999 \
--max-page-size 999999999 \
--max-diff-block-lines 100000 \
--max-page-diff-block-lines 100000 \
{{ a }} {{ b }}
diff-python-json a b:
diffoscope \
--html build/diff.html \
--exclude 'python/build/**' \
--exclude 'python/install/**' \
--max-diff-block-lines 100000 \
--max-page-diff-block-lines 100000 \
{{ a }} {{ b }}
cat-python-json archive:
tar -x --to-stdout -f {{ archive }} python/PYTHON.json
# Download release artifacts from GitHub Actions
release-download-distributions token commit:
mkdir -p dist
cargo run --release -- fetch-release-distributions --token {{token}} --commit {{commit}} --dest dist
# Upload release artifacts to a GitHub release.
release-upload-distributions token datetime tag:
cargo run --release -- upload-release-distributions --token {{token}} --datetime {{datetime}} --tag {{tag}} --dist dist
# "Upload" release artifacts to a GitHub release in dry-run mode (skip upload).
release-upload-distributions-dry-run token datetime tag:
cargo run --release -- upload-release-distributions --token {{token}} --datetime {{datetime}} --tag {{tag}} --dist dist -n
# Promote a tag to "latest" by pushing to the `latest-release` branch.
release-set-latest-release tag:
#!/usr/bin/env bash
set -euxo pipefail
git fetch origin
git switch latest-release
git reset --hard origin/latest-release
cat << EOF > latest-release.json
{
"version": 1,
"tag": "{{tag}}",
"release_url": "https://github.com/astral-sh/python-build-standalone/releases/tag/{{tag}}",
"asset_url_prefix": "https://github.com/astral-sh/python-build-standalone/releases/download/{{tag}}"
}
EOF
# If the branch is dirty, we add and commit.
if ! git diff --quiet; then
git add latest-release.json
git commit -m 'set latest release to {{tag}}'
git switch main
git push origin latest-release
else
echo "No changes to commit."
fi
# Create a GitHub release object, or reuse an existing prerelease.
release-create tag:
#!/usr/bin/env bash
set -euo pipefail
prerelease_exists=$(gh release view {{tag}} --json isPrerelease -t '{{{{.isPrerelease}}' 2>&1 || true)
case "$prerelease_exists" in
true)
echo "note: updating existing prerelease {{tag}}"
;;
false)
echo "error: release {{tag}} already exists"
exit 1
;;
"release not found")
gh release create {{tag}} --prerelease --notes TBD --verify-tag
;;
*)
echo "error: unexpected gh cli output: $prerelease_exists"
exit 1
;;
esac
# Perform the release job. Assumes that the GitHub Release has been created.
release-run token commit tag:
#!/bin/bash
set -eo pipefail
rm -rf dist
just release-download-distributions {{token}} {{commit}}
datetime=$(ls dist/cpython-3.10.*-x86_64-unknown-linux-gnu-install_only-*.tar.gz | awk -F- '{print $8}' | awk -F. '{print $1}')
just release-upload-distributions {{token}} ${datetime} {{tag}}
just release-set-latest-release {{tag}}
# Perform a release in dry-run mode.
release-dry-run token commit tag:
#!/bin/bash
set -eo pipefail
rm -rf dist
just release-download-distributions {{token}} {{commit}}
datetime=$(ls dist/cpython-3.10.*-x86_64-unknown-linux-gnu-install_only-*.tar.gz | awk -F- '{print $8}' | awk -F. '{print $1}')
just release-upload-distributions-dry-run {{token}} ${datetime} {{tag}}
_download-stats mode:
build/venv.*/bin/python3 -c 'import pythonbuild.utils as u; u.release_download_statistics(mode="{{mode}}")'
# Show download counts of every release asset.
download-stats:
just _download-stats by_asset
# Show download counts of release assets by build configuration.
download-stats-by-build:
just _download-stats by_build
# Show download counts of "install only" release assets by build configuration.
download-stats-by-build-install-only:
just _download-stats by_build_install_only
# Show download counts of release assets by release tag.
download-stats-by-tag:
just _download-stats by_tag
# Show a total count of all release asset downloads.
download-stats-total:
just _download-stats total
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lpwm/python-build-standalone.git
git@gitee.com:lpwm/python-build-standalone.git
lpwm
python-build-standalone
python-build-standalone
main

搜索帮助