-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (84 loc) · 3.1 KB
/
Copy pathci.yml
File metadata and controls
89 lines (84 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: CI
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
core-portability:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.13"
- name: Install the core package
run: pip install -e .
- name: Install wheel-builder toolchain
run: pip install setuptools wheel
- name: Install Windows timezone data
if: runner.os == 'Windows'
run: pip install tzdata
- name: Verify product and version truth
run: python scripts/verify_product_version_truth.py
- name: Run the core Python test suite
run: python -m unittest discover -s tests -p "test_*.py"
verify:
runs-on: macos-26
timeout-minutes: 45
env:
DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.13"
cache: pip
cache-dependency-path: requirements-build.txt
- name: Verify immutable GitHub Action pins
run: python3 scripts/verify_action_pins.py
- name: Bootstrap pinned build dependencies
run: scripts/bootstrap.sh
- name: Verify release metadata consistency
run: .build-venv/bin/python scripts/verify_release_metadata.py
- name: Verify product and version truth
run: .build-venv/bin/python scripts/verify_product_version_truth.py
- name: Audit locked Python dependencies
run: scripts/audit_dependencies.sh
- name: Scan the complete Git history for credentials
run: scripts/release_secret_scan.py --history
- name: Test and build the release bundle
run: scripts/build_app.sh
- name: Package the development-signed artifact
run: scripts/package_release.sh
- name: Audit packaged artifact
run: |
.build-venv/bin/python scripts/release_artifact_audit.py dist/OpenUsage-Bar-*.zip
scripts/release_dmg_audit.sh dist/OpenUsage-Bar-*.dmg
- name: Prove isolated install, upgrade, rollback, and uninstall
run: scripts/release_smoke.sh
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: openusage-bar-macos-arm64
path: |
dist/OpenUsage-Bar-*.dmg
dist/OpenUsage-Bar-*.dmg.sha256
dist/OpenUsage-Bar-*.zip
dist/OpenUsage-Bar-*.zip.sha256
dist/OpenUsage-Bar-*-manifest.json
dist/OpenUsage-Bar-*-sbom.spdx.json
if-no-files-found: error
retention-days: 14