1+ name : Build GUI for macOS
2+
3+ on :
4+ workflow_dispatch :
5+ pull_request :
6+ branches : [master, development]
7+ push :
8+ branches : [master, development]
9+
10+ permissions :
11+ id-token : write
12+ contents : read
13+
14+ env :
15+ AWS_REGION : us-east-1
16+
17+ jobs :
18+ build :
19+ name : Build for macOS
20+ runs-on : macos-latest
21+
22+ steps :
23+ - name : Checkout
24+ uses : actions/checkout@v3
25+
26+ - name : Setup Python
27+ uses : actions/setup-python@v4
28+ with :
29+ python-version : ' 3.9'
30+ cache : ' pip'
31+
32+ - name : Install Python Dependencies
33+ run : pip install -r release/requirements.txt
34+
35+ - name : Install Processing
36+ run : |
37+ curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-macos-x64.zip
38+ unzip processing-4.2-macos-x64.zip
39+ ls
40+ mv Processing.app /Applications/Processing.app
41+
42+ - name : Configure PATH
43+ run : |
44+ echo "$GITHUB_WORKSPACE/release/mac/" >> $GITHUB_PATH
45+ chmod +x $GITHUB_WORKSPACE/release/mac/processing-java
46+
47+ - name : Print PATH
48+ run : echo "$PATH"
49+
50+ - name : Test processing-java command
51+ run : processing-java --help
52+
53+ - name : Copy Libraries to Processing
54+ run : |
55+ mkdir -p $HOME/Documents/Processing/libraries/
56+ cp -a $GITHUB_WORKSPACE/OpenBCI_GUI/libraries/. $HOME/Documents/Processing/libraries/
57+
58+ - name : Run Unit Tests
59+ run : python $GITHUB_WORKSPACE/GuiUnitTests/run-unittests.py
60+
61+ - name : Decrypt Certificate
62+ run : |
63+ openssl version
64+ echo $MAC_CERTIFICATE_ENCRYPTED | base64 --decode > $GITHUB_WORKSPACE/release/mac/encrypted-certificate.p12.enc
65+ openssl enc -aes-256-cbc -a -d -pbkdf2 \
66+ -in $GITHUB_WORKSPACE/release/mac/encrypted-certificate.p12.enc \
67+ -out $GITHUB_WORKSPACE/release/mac/certificate.p12 \
68+ -k "$OPENSSL_CERT_K"
69+ env :
70+ OPENSSL_CERT_K : ${{ secrets.OPENSSL_CERT_K }}
71+ MAC_CERTIFICATE_ENCRYPTED : ${{ secrets.MAC_CERTIFICATE_ENCRYPTED }}
72+
73+ - name : Add OSX Signing Certificate to Keychain
74+ uses : apple-actions/import-codesign-certs@v2
75+ with :
76+ p12-filepath : ${{ github.workspace }}/release/mac/certificate.p12
77+ p12-password : ${{ secrets.CERTIFICATE_P12_PASSWORD }}
78+
79+ - name : Build
80+ run : |
81+ python $GITHUB_WORKSPACE/release/build.py
82+ cp $GITHUB_WORKSPACE/OpenBCI_GUI/sketch.icns $GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app/Contents/Resources/sketch.icns
83+
84+ - name : Sign Build
85+ run : |
86+ codesign -f -v -s "Developer ID Application: OpenBCI, Inc. (3P82WRGLM8)" $GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app
87+
88+ - name : Create DMG
89+ run : |
90+ dmgbuild -s release/mac/dmgbuild_settings.py \
91+ -D app=$GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app \
92+ OpenBCI_GUI $GITHUB_WORKSPACE/application.macosx.dmg
93+
94+ - name : Sign DMG
95+ run : |
96+ codesign -f -v -s "Developer ID Application: OpenBCI, Inc. (3P82WRGLM8)" $GITHUB_WORKSPACE/application.macosx.dmg
97+
98+ - name : Package
99+ run : python $GITHUB_WORKSPACE/release/package.py
100+
101+ - name : Configure AWS Credentials
102+ uses : aws-actions/configure-aws-credentials@v2
103+ with :
104+ role-to-assume : ${{ secrets.AWS_ROLE_TO_ASSUME }}
105+ aws-region : ${{ env.AWS_REGION }}
106+
107+ - name : Get Branch Names
108+ id : branch-name
109+ uses : tj-actions/branch-names@v7
110+
111+ - name : Store Build on AWS
112+ run : |
113+ cd $GITHUB_WORKSPACE
114+ ls
115+ CURRENT_BRANCH=${{ steps.branch-name.outputs.head_ref_branch }}
116+ echo $CURRENT_BRANCH
117+ aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
118+ aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/${CURRENT_BRANCH} --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
119+ aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
0 commit comments