83 lines
2.4 KiB
YAML
83 lines
2.4 KiB
YAML
name: Dump local wheels
|
|
description: scan local env and dump needed wheels
|
|
|
|
inputs:
|
|
torch-url:
|
|
description: path to the PyTorch downloads
|
|
required: false
|
|
default: "https://download.pytorch.org/whl/cpu/torch_stable.html"
|
|
wheel-dir:
|
|
description: local path for export wheels
|
|
required: false
|
|
default: "_pip-wheels/"
|
|
cache-key:
|
|
description: update this cache
|
|
required: false
|
|
default: "pypi_wheels"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: install dev. env
|
|
run: pip install -r requirements/ci.txt
|
|
shell: bash
|
|
|
|
- name: Freeze local emv.
|
|
run: |
|
|
pip freeze > requirements.dump
|
|
cat requirements.dump
|
|
shell: bash
|
|
|
|
- name: Filter self pkg
|
|
run: |
|
|
import os
|
|
fp = 'requirements.dump'
|
|
with open(fp) as fopen:
|
|
lines = [ln.strip() for ln in fopen.readlines()]
|
|
# prevent collisions with version appendix
|
|
lines = [ln.split('+')[0] for ln in lines if '-e ' not in ln]
|
|
# drop sphinx theme package
|
|
lines = [ln for ln in lines if 'sphinx-theme' not in ln]
|
|
with open(fp, 'w') as fopen:
|
|
fopen.writelines([ln + os.linesep for ln in lines])
|
|
shell: python
|
|
|
|
- name: Dump wheels
|
|
run: |
|
|
# cat requirements.dump
|
|
pip wheel -r requirements.dump --prefer-binary \
|
|
--wheel-dir=.wheels \
|
|
-f ${{ inputs.torch-url }} -f ${{ inputs.wheel-dir }}
|
|
ls -lh .wheels/
|
|
shell: bash
|
|
|
|
- name: Find diff
|
|
id: wheels-diff
|
|
run: |
|
|
import os, glob
|
|
wheels = [os.path.basename(p) for p in glob.glob(".wheels/*")]
|
|
pkgs = [os.path.basename(p) for p in glob.glob("${{ inputs.wheel-dir }}/*")]
|
|
diff = [w for w in wheels if w not in pkgs]
|
|
print(diff)
|
|
with open(os.environ['GITHUB_OUTPUT'], 'a') as fh:
|
|
print(f'count-new={len(diff)}', file=fh)
|
|
shell: python
|
|
|
|
- name: Cache pull
|
|
if: ${{ steps.wheels-diff.outputs.count-new != 0 }}
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: ${{ inputs.wheel-dir }}
|
|
key: ${{ inputs.cache-key }}
|
|
|
|
- run: cp .wheels/* ${{ inputs.wheel-dir }}
|
|
if: ${{ steps.wheels-diff.outputs.count-new != 0 }}
|
|
shell: bash
|
|
|
|
- name: Cache push
|
|
if: ${{ steps.wheels-diff.outputs.count-new != 0 }}
|
|
uses: actions/cache/save@v3
|
|
with:
|
|
path: ${{ inputs.wheel-dir }}
|
|
key: ${{ inputs.cache-key }}
|