Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 51 additions & 6 deletions .github/workflows/build-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,46 @@ jobs:
path: |
dist/icloudpd*.whl

get_version_thumbprint:
runs-on: ubuntu-22.04
defaults:
run:
shell: bash

steps:
- uses: actions/checkout@v4

- name: Download version info
uses: actions/download-artifact@v4
with:
name: icloudpd-version-info
path: |
src/foundation

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install
run: >
export DEBIAN_FRONTEND=noninteractive && sudo apt-get update && sudo apt-get install -y tzdata locales-all &&
python3 -m pip install --disable-pip-version-check -r requirements-pip.txt &&
pip3 install --disable-pip-version-check -e .

- name: Get Version
id: get_version
run: >
mkdir -p dist &&
icloudpd --version | tee dist/icloudpd-version-thumbprint.txt

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: icloudpd-version-thumbprint
if-no-files-found: error
path: |
dist/icloudpd-version-thumbprint.txt

get_expected_version_linux_apt:
runs-on: ubuntu-22.04
Expand Down Expand Up @@ -3832,6 +3872,7 @@ jobs:
- get_expected_version_linux_apt
- get_expected_version_linux_apk
- get_expected_version_macos
- get_version_thumbprint
defaults:
run:
shell: bash
Expand Down Expand Up @@ -3866,12 +3907,18 @@ jobs:
path: |
tzlc

- name: Download Version
uses: actions/download-artifact@v4
with:
pattern: icloudpd-version-thumbprint
merge-multiple: true
path: |
dist

- name: Compile Compatibility Report
run: |
echo "debugging report..."
scripts/compile_compatibility.py compatibility
echo "save report..."
scripts/compile_compatibility.py compatibility > dist/compatibility-${{inputs.icloudpd_version}}.md
scripts/compile_compatibility.py dist/icloudpd-version-thumbprint.txt compatibility | tee dist/compatibility-${{inputs.icloudpd_version}}.md

- name: Upload compatibility report
uses: actions/upload-artifact@v4
Expand All @@ -3884,9 +3931,7 @@ jobs:
- name: Compile tzlc Report
run: |
echo "save report..."
scripts/compile_tzlc.py tzlc "${{needs.get_expected_version_linux_apt.outputs.expected_version}}" "${{needs.get_expected_version_linux_apk.outputs.expected_version}}" "${{needs.get_expected_version_macos.outputs.expected_version}}"> dist/tzlc-${{inputs.icloudpd_version}}.md
echo "debugging report..."
cat dist/tzlc-${{inputs.icloudpd_version}}.md
scripts/compile_tzlc.py dist/icloudpd-version-thumbprint.txt tzlc "${{needs.get_expected_version_linux_apt.outputs.expected_version}}" "${{needs.get_expected_version_linux_apk.outputs.expected_version}}" "${{needs.get_expected_version_macos.outputs.expected_version}}" | tee dist/tzlc-${{inputs.icloudpd_version}}.md

- name: Upload tzlc report
uses: actions/upload-artifact@v4
Expand Down
10 changes: 9 additions & 1 deletion scripts/compile_compatibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,18 @@ def content_checker(filepath):


if __name__ == "__main__":
if len(sys.argv) < 2:
print("Params: <version-thumbprint-file> [folder]")
sys.exit(1)
print("## Minimal Effort Compatibility")
print(
"Checks if `icloudpd` can be installed using minimal effort and ran bare minimum functionality of displaying a version information. Minimal effort may require installing default version of package manager using OS tools"
)
print("")
folder = sys.argv[1] if len(sys.argv) > 1 else "."
version_thumbprint_file = sys.argv[1]
with open(version_thumbprint_file) as file:
version_thumbprint = file.read()
print(f"Version: {version_thumbprint}")
print("")
folder = sys.argv[2] if len(sys.argv) > 2 else "."
print_breakdowns(folder, content_checker, ("(src)", "Test pass using src (for pip)"))
15 changes: 11 additions & 4 deletions scripts/compile_tzlc.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,23 @@ def _intern(filepath):


if __name__ == "__main__":
if len(sys.argv) < 3:
print("Params: <folder> <expected content> [<expected content>...]")
if len(sys.argv) < 4:
print(
"Params: <version-thumbprint-file> <folder> <expected content> [<expected content>...]"
)
sys.exit(1)
print("## Timezone and Locale Compatibility")
print(
"Checks if `icloudpd` can be installed using minimal effort and ran bare minimum functionality of displaying version and commit timestamp in local timezone and RU locale. Minimal effort may require installing default version of package manager, timezone data, and locales using OS tools"
)
print("")
folder = sys.argv[1]
expected_content = [c.strip() for c in sys.argv[2:]]
version_thumbprint_file = sys.argv[1]
with open(version_thumbprint_file) as file:
version_thumbprint = file.read()
print(f"Version: {version_thumbprint}")
print("")
folder = sys.argv[2]
expected_content = [c.strip() for c in sys.argv[3:]]
# content is special when it exists, but is invalid
print_breakdowns(
folder,
Expand Down
Loading