Add xbuildenv to github releases (#2850)

This adds a step that generates an xbuildenv to the circleci CI and
deploys it to github releases when we make a release. I also updated
the url in download_xbuildenv to point to github releases.
This commit is contained in:
Hood Chatham 2022-07-10 10:58:39 +02:00 committed by GitHub
parent 3d28e35ade
commit cdb457bf5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 46 additions and 12 deletions

View File

@ -201,6 +201,24 @@ jobs:
paths:
- .
create-xbuild-env:
<<: *defaults
steps:
- checkout
- attach_workspace:
at: .
- run:
name: create xbuild environment
command: |
PYTHONPATH=pyodide-build python -m pyodide_build create_xbuildenv
- persist_to_workspace:
root: .
paths:
- .
test-main:
parameters:
test-params:
@ -338,10 +356,16 @@ jobs:
- run:
name: Deploy Github Releases
command: |
cp -r dist /tmp/pyodide
cd /tmp/
tar cjf pyodide-build-${CIRCLE_TAG}.tar.bz2 pyodide/
ghr -t "${GITHUB_TOKEN}" -u "${CIRCLE_PROJECT_USERNAME}" -r "${CIRCLE_PROJECT_REPONAME}" -c "${CIRCLE_SHA1}" -delete "${CIRCLE_TAG}" ./pyodide-build-${CIRCLE_TAG}.tar.bz2
mkdir -p /tmp/ghr/dist
cp -r dist /tmp/ghr/pyodide
cp -r xbuildenv /tmp/ghr/xbuildenv
cd /tmp/ghr
tar cjf dist/pyodide-build-${CIRCLE_TAG}.tar.bz2 pyodide/
tar cjf dist/xbuildenv-${CIRCLE_TAG}.tar.bz2 xbuildenv/
ghr -t "${GITHUB_TOKEN}" -u "${CIRCLE_PROJECT_USERNAME}" \
-r "${CIRCLE_PROJECT_REPONAME}" -c "${CIRCLE_SHA1}" \
-delete "${CIRCLE_TAG}" \
dist
- run:
name: Deploy to npm
@ -602,6 +626,13 @@ workflows:
tags:
only: /.*/
- create-xbuild-env:
requires:
- build-packages
filters:
tags:
only: /.*/
- build-pyodide-debug:
requires:
- build-packages
@ -615,6 +646,7 @@ workflows:
- test-core-firefox
- test-packages-firefox
- build-pyodide-debug
- create-xbuild-env
filters:
branches:
ignore: /.*/

View File

@ -0,0 +1 @@
__version__ = "0.21.0.dev0"

View File

@ -28,7 +28,7 @@ def download_xbuild_env(version: str, xbuildenv_path: Path) -> None:
rmtree(xbuildenv_path, ignore_errors=True)
with NamedTemporaryFile(suffix=".tar") as f:
urlretrieve(
f"http://pyodide-cache.s3-website-us-east-1.amazonaws.com/xbuildenv/{version}.tar",
f"https://github.com/pyodide/pyodide/releases/download/{version}/xbuildenv-{version}.tar.bz2",
f.name,
)
unpack_archive(f.name, xbuildenv_path)
@ -61,7 +61,8 @@ def install_xbuild_env(xbuildenv_path: Path) -> None:
def main(args: argparse.Namespace) -> None:
xbuildenv_path = Path(args.xbuild_env[0])
version = "2"
from . import __version__
if args.download:
download_xbuild_env(version, xbuildenv_path)
download_xbuild_env(__version__, xbuildenv_path)
install_xbuild_env(xbuildenv_path)

View File

@ -8,10 +8,10 @@ from . import build
def ensure_env_installed(env: Path) -> None:
if env.exists():
return
from .. import __version__
from ..install_xbuildenv import download_xbuild_env, install_xbuild_env
version = "2"
download_xbuild_env(version, env)
download_xbuild_env(__version__, env)
install_xbuild_env(env)

View File

@ -1,6 +1,6 @@
[metadata]
name = pyodide-build
version = 0.21.0.dev0
version = attr: pyodide_build.__version__
author = Pyodide developers
description = "Tools for building Pyodide"
long_description = file: README.md

View File

@ -45,8 +45,8 @@ PYTHON_TARGETS = [
prerelease=True,
),
Target(
ROOT / "pyodide-build/setup.cfg",
build_version_pattern("version = {python_version}"),
ROOT / "pyodide-build/pyodide_build/__init__.py",
pattern=build_version_pattern('__version__ = "{python_version}"'),
prerelease=True,
),
Target(