-
Notifications
You must be signed in to change notification settings - Fork 31
89 lines (88 loc) · 3.17 KB
/
mac_intel_build.yml
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: Build ChimeraX for Intel Macs
on:
workflow_call:
inputs:
release_type:
type: string
required: true
branch:
type: string
required: false
secrets:
PREBUILT_CACHE_SECRET:
required: true
MAC_CERT_BASE64:
required: true
MAC_CERT_P12_PASSWD:
required: true
MAC_PROVISION_PROFILE_BASE64:
required: true
MAC_KEYCHAIN_PASSWORD:
required: true
MAC_NOTARIZATION_TEAM_ID:
required: true
MAC_NOTARIZATION_APP_PSWD:
required: true
MAC_NOTARIZATION_PROVIDER:
required: true
MAC_NOTARIZATION_EMAIL:
required: true
jobs:
build-intel-macos:
name: Build ChimeraX for Intel Macs
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || 'develop' }}
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- run: |
brew install [email protected]
python3.10 -m pip install lief==0.12.2 dmgbuild
patch --ignore-whitespace -d /usr/local/lib/python3.10/site-packages/dmgbuild -N -p0 < ./utils/build/macos/dmgbuild.patch
# Temporarily force this to succeed. The container's Python conflicts with homebrew's,
# but we don't really use it anyway.
- run: ${PWD}/utils/set_up_macos.sh || true
- name: Fetch Plato prerequisites
uses: ./utils/ci/consolidated_cache
with:
platform: macos
architecture: x86_64
cache_key: ${{ secrets.PREBUILT_CACHE_SECRET }}
- run: MAKEOPTS="-j$(sysctl -n hw.logicalcpu)" make -j$(sysctl -n hw.logicalcpu) install-rbvi
- name: Run the legacy test suite
run: make test
- name: Install Pytest
run: ./ChimeraX.app/Contents/bin/python3.11 -I -m pip install pytest pytest-cov
- name: Set up the repo for coverage reporting
run: make prepare-coverage
- name: Check whether ChimeraX.exe and python -m chimerax.core are equivalent
run: USE_COVERAGE=1 make pytest-both-exes
- name: Run wheel tests
run: USE_COVERAGE=1 make pytest-wheel
- name: Run distribution tests
run: USE_COVERAGE=1 make pytest-app
- name: Report coverage
run: make report-coverage
- name: Sign the macOS package
uses: ./utils/ci/sign_macos/
with:
build_certificate: ${{ secrets.MAC_CERT_BASE64 }}
p12_pw: ${{ secrets.MAC_CERT_P12_PASSWD }}
build_profile: ${{ secrets.MAC_PROVISION_PROFILE_BASE64 }}
kc_pw: ${{ secrets.MAC_KEYCHAIN_PASSWORD }}
team_id: ${{ secrets.MAC_NOTARIZATION_TEAM_ID }}
app_pw: ${{ secrets.MAC_NOTARIZATION_APP_PSWD }}
provider: ${{ secrets.MAC_NOTARIZATION_PROVIDER }}
email: ${{ secrets.MAC_NOTARIZATION_EMAIL }}
release_type: ${{ inputs.release_type }}
- name: Upload ChimeraX
uses: ./utils/ci/upload_artifact
with:
artifact_path: ChimeraX.dmg
full_build: true
release_type: ${{ inputs.release_type }}
platform: macosx
deploy_key: ${{ secrets.PREBUILT_CACHE_SECRET }}