This commit is contained in:
Phil Szalay 2025-03-14 10:21:39 +01:00
parent 7ea4b5da92
commit a3e1a8fa85
3 changed files with 240 additions and 31 deletions

View File

@ -18,7 +18,7 @@ env:
jobs:
build-and-push:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

View File

@ -30,7 +30,7 @@ WORKDIR /app
ENV NODE_OPTIONS="--max-old-space-size=32768"
COPY package.json package-lock.json ./
RUN npm ci
RUN npm ci --omit=dev
COPY . .
ENV APP_BUILD_HASH=${BUILD_HASH}

View File

@ -1,33 +1,242 @@
const packages = [
'affine', 'aiohttp', 'aiosignal', 'altair', 'annotated-types', 'apsw', 'argon2-cffi', 'argon2-cffi-bindings',
'arro3-compute', 'arro3-core', 'arro3-io', 'asciitree', 'astropy', 'astropy_iers_data', 'asttokens', 'async-timeout',
'atomicwrites', 'attrs', 'autograd', 'awkward-cpp', 'b2d', 'bcrypt', 'beautifulsoup4', 'biopython', 'bitarray',
'bitstring', 'bleach', 'bokeh', 'boost-histogram', 'brotli', 'cachetools', 'Cartopy', 'casadi', 'cbor-diag',
'certifi', 'cffi', 'cffi_example', 'cftime', 'charset-normalizer', 'clarabel', 'click', 'cligj', 'clingo',
'cloudpickle', 'cmyt', 'colorspacious', 'contourpy', 'coolprop', 'coverage', 'cramjam', 'crc32c', 'cryptography',
'css-inline', 'cssselect', 'cvxpy-base', 'cycler', 'cysignals', 'cytoolz', 'decorator', 'demes', 'deprecation',
'distlib', 'docutils', 'duckdb', 'ewah_bool_utils', 'exceptiongroup', 'executing', 'fastparquet', 'fiona',
'fonttools', 'freesasa', 'frozenlist', 'fsspec', 'future', 'galpy', 'gensim', 'geopandas', 'gmpy2', 'gsw',
'h5py', 'html5lib', 'httpx', 'idna', 'igraph', 'imageio', 'iminuit', 'iniconfig', 'ipython', 'jedi', 'Jinja2',
'joblib', 'jsonschema', 'jsonschema_specifications', 'kiwisolver', 'lakers-python', 'lazy-object-proxy',
'lazy_loader', 'libcst', 'lightgbm', 'logbook', 'lxml', 'MarkupSafe', 'matplotlib', 'matplotlib-inline',
'matplotlib-pyodide', 'memory-allocator', 'micropip', 'mmh3', 'mne', 'more-itertools', 'mpmath', 'msgpack',
'msgspec', 'msprime', 'multidict', 'munch', 'mypy', 'narwhals', 'netcdf4', 'networkx', 'newick', 'nh3', 'nlopt',
'nltk', 'numcodecs', 'numpy', 'opencv-python', 'optlang', 'orjson', 'packaging', 'pandas', 'parso', 'patsy',
'peewee', 'pi-heif', 'Pillow', 'pillow-heif', 'pkgconfig', 'pluggy', 'polars', 'pplpy', 'primecountpy',
'prompt_toolkit', 'protobuf', 'pure-eval', 'py', 'pyarrow', 'pyclipper', 'pycparser', 'pycryptodome', 'pydantic',
'pydantic_core', 'pyerfa', 'pygame-ce', 'Pygments', 'pyheif', 'pyiceberg', 'pyinstrument', 'pynacl',
'pyodide-http', 'pyodide-unix-timezones', 'pyparsing', 'pyproj', 'pyrsistent', 'pysam', 'pyshp', 'pytest',
'pytest-asyncio', 'pytest-benchmark', 'python-dateutil', 'python-flint', 'python-magic', 'python-sat',
'python-solvespace', 'pytz', 'pywavelets', 'pyxel', 'pyxirr', 'pyyaml', 'rasterio', 'rateslib', 'rebound',
'reboundx', 'referencing', 'regex', 'requests', 'retrying', 'rich', 'river', 'RobotRaconteur', 'rpds-py',
'ruamel.yaml', 'rust-abi-test', 'rust-panic-test', 'scikit-image', 'scikit-learn', 'scipy', 'screed', 'setuptools',
'shapely', 'simplejson', 'sisl', 'six', 'smart-open', 'sortedcontainers', 'soupsieve', 'sourmash', 'soxr',
'sparseqr', 'sqlalchemy', 'stack-data', 'statsmodels', 'strictyaml', 'svgwrite', 'swiglpk', 'sympy', 'tblib',
'termcolor', 'texttable', 'threadpoolctl', 'tiktoken', 'tomli', 'tomli-w', 'toolz', 'tqdm', 'traitlets', 'traits',
'tree-sitter', 'tree-sitter-go', 'tree-sitter-java', 'tree-sitter-python', 'tskit', 'typing-extensions', 'tzdata',
'uncertainties', 'unyt', 'urllib3', 'vega-datasets', 'wcwidth', 'webencodings', 'wordcloud', 'wrapt', 'xarray',
'xgboost', 'xlrd', 'xxhash', 'xyzservices', 'yarl', 'yt', 'zarr', 'zengl', 'zfpy', 'zstandard'
'affine',
'altair',
'annotated-types',
'apsw',
'argon2-cffi',
'argon2-cffi-bindings',
'arro3-compute',
'arro3-core',
'arro3-io',
'asciitree',
'astropy',
'astropy_iers_data',
'asttokens',
'async-timeout',
'atomicwrites',
'attrs',
'autograd',
'awkward-cpp',
'b2d',
'bcrypt',
'beautifulsoup4',
'biopython',
'bitarray',
'bitstring',
'bleach',
'bokeh',
'boost-histogram',
'brotli',
'cachetools',
'Cartopy',
'casadi',
'cbor-diag',
'cffi',
'cffi_example',
'cftime',
'charset-normalizer',
'clarabel',
'click',
'cligj',
'clingo',
'cloudpickle',
'cmyt',
'colorspacious',
'contourpy',
'coolprop',
'coverage',
'cramjam',
'crc32c',
'cryptography',
'css-inline',
'cssselect',
'cvxpy-base',
'cycler',
'cysignals',
'cytoolz',
'decorator',
'demes',
'deprecation',
'distlib',
'docutils',
'duckdb',
'ewah_bool_utils',
'exceptiongroup',
'executing',
'fastparquet',
'fiona',
'fonttools',
'freesasa',
'frozenlist',
'fsspec',
'future',
'galpy',
'geopandas',
'gmpy2',
'gsw',
'h5py',
'html5lib',
'igraph',
'imageio',
'iminuit',
'iniconfig',
'ipython',
'jedi',
'Jinja2',
'joblib',
'jsonschema',
'jsonschema_specifications',
'kiwisolver',
'lakers-python',
'lazy-object-proxy',
'lazy_loader',
'libcst',
'logbook',
'lxml',
'MarkupSafe',
'matplotlib',
'matplotlib-inline',
'matplotlib-pyodide',
'memory-allocator',
'mmh3',
'mne',
'more-itertools',
'mpmath',
'msgpack',
'msgspec',
'msprime',
'multidict',
'munch',
'mypy',
'narwhals',
'netcdf4',
'networkx',
'newick',
'nh3',
'nlopt',
'nltk',
'numcodecs',
'numpy',
'opencv-python',
'optlang',
'orjson',
'packaging',
'pandas',
'parso',
'patsy',
'peewee',
'pi-heif',
'Pillow',
'pillow-heif',
'pkgconfig',
'pluggy',
'polars',
'pplpy',
'primecountpy',
'prompt_toolkit',
'protobuf',
'pure-eval',
'py',
'pyarrow',
'pyclipper',
'pycparser',
'pycryptodome',
'pydantic',
'pydantic_core',
'pyerfa',
'pygame-ce',
'Pygments',
'pyheif',
'pyiceberg',
'pyinstrument',
'pynacl',
'pyodide-unix-timezones',
'pyparsing',
'pyproj',
'pyrsistent',
'pysam',
'pyshp',
'pytest',
'pytest-asyncio',
'pytest-benchmark',
'python-dateutil',
'python-flint',
'python-magic',
'python-sat',
'python-solvespace',
'pytz',
'pywavelets',
'pyxel',
'pyxirr',
'pyyaml',
'rasterio',
'rateslib',
'rebound',
'reboundx',
'referencing',
'regex',
'retrying',
'rich',
'river',
'rpds-py',
'ruamel.yaml',
'rust-abi-test',
'rust-panic-test',
'scikit-image',
'scipy',
'screed',
'setuptools',
'shapely',
'simplejson',
'sisl',
'six',
'smart-open',
'sortedcontainers',
'soupsieve',
'sourmash',
'soxr',
'sparseqr',
'sqlalchemy',
'stack-data',
'statsmodels',
'strictyaml',
'svgwrite',
'swiglpk',
'sympy',
'tblib',
'termcolor',
'texttable',
'threadpoolctl',
'tiktoken',
'tomli',
'tomli-w',
'toolz',
'tqdm',
'traitlets',
'traits',
'tree-sitter',
'tree-sitter-go',
'tree-sitter-java',
'tree-sitter-python',
'tskit',
'typing-extensions',
'tzdata',
'uncertainties',
'unyt',
'vega-datasets',
'wcwidth',
'webencodings',
'wordcloud',
'wrapt',
'xarray',
'xlrd',
'xxhash',
'xyzservices',
'yt',
'zarr',
'zengl',
'zfpy',
'zstandard'
];
import { loadPyodide } from 'pyodide';