Skip to content

Commit

Permalink
Validate that LICENSE files are included in build wheels
Browse files Browse the repository at this point in the history
  • Loading branch information
johnthagen committed Aug 27, 2020
1 parent de2315b commit 68d63ce
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ jobs:
startsWith(github.ref, 'refs/heads/v3.3') ||
startsWith(github.ref, 'refs/tags/v3.3') )
- name: Validate that LICENSE files are included in wheels
run: |
python ./ci/check_wheel_licenses.py
- uses: actions/upload-artifact@v2
with:
name: wheels
Expand Down
File renamed without changes.
File renamed without changes.
32 changes: 32 additions & 0 deletions ci/check_wheel_licenses.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env python3

"""Check that all .whl files in the dist folder have the correct LICENSE files included.
To run:
$ python3 setup.py bdist_wheel
$ ./ci/check_wheel_licenses.py
"""

from pathlib import Path
import sys
import zipfile

EXIT_SUCCESS = 0
EXIT_FAILURE = 1

project_dir = Path(__file__).parent.resolve().parent
dist_dir = project_dir / 'dist'
license_dir = project_dir / 'LICENSE'

license_file_names = [Path(path).name for path in sorted(license_dir.glob('*'))]
for wheel in dist_dir.glob('*.whl'):
print(f'Checking LICENSE files in: {wheel}')
with zipfile.ZipFile(wheel) as f:
wheel_license_file_names = [Path(path).name for path in sorted(f.namelist())
if '.dist-info/LICENSE' in path]
if wheel_license_file_names != license_file_names:
print(f'LICENSE file(s) missing:\n'
f'{wheel_license_file_names} !=\n'
f'{license_file_names}')
sys.exit(EXIT_FAILURE)
sys.exit(EXIT_SUCCESS)

0 comments on commit 68d63ce

Please sign in to comment.