Skip to content

Commit 0a99b44

Browse files
authored
Merge pull request #1192 from OpenBCI/development
GUI v6
2 parents 37fa9a4 + 5095f6e commit 0a99b44

111 files changed

Lines changed: 400827 additions & 201396 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Build GUI for Linux
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 Linux
20+
runs-on: ubuntu-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+
mkdir -p $GITHUB_WORKSPACE/processing
38+
cd $GITHUB_WORKSPACE/processing
39+
curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-linux-x64.tgz
40+
tar -xzvf processing-4.2-linux-x64.tgz
41+
ls
42+
43+
- name: Add Processing to PATH
44+
run: sudo su -c "ln -s $GITHUB_WORKSPACE/processing/processing-4.2/processing-java /usr/local/bin/processing-java"
45+
46+
- name: Print PATH
47+
run: echo "$PATH"
48+
49+
- name: Test processing-java Command
50+
run: processing-java --help
51+
52+
- name: Copy Libraries to Processing
53+
run: |
54+
mkdir -p $HOME/sketchbook/libraries/
55+
cp -a $GITHUB_WORKSPACE/OpenBCI_GUI/libraries/. $HOME/sketchbook/libraries/
56+
57+
# Unit tests cannot be run on Linux without attached display.
58+
59+
- name: Build
60+
run: python $GITHUB_WORKSPACE/release/build.py
61+
62+
- name: Package
63+
run: python $GITHUB_WORKSPACE/release/package.py
64+
65+
- name: Configure AWS credentials
66+
uses: aws-actions/configure-aws-credentials@v2
67+
with:
68+
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
69+
aws-region: ${{ env.AWS_REGION }}
70+
71+
- name: Get Branch Names
72+
id: branch-name
73+
uses: tj-actions/branch-names@v7
74+
75+
- name: Store Build on AWS
76+
run: |
77+
cd $GITHUB_WORKSPACE
78+
ls
79+
CURRENT_BRANCH=${{ steps.branch-name.outputs.head_ref_branch }}
80+
echo $CURRENT_BRANCH
81+
aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
82+
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/${CURRENT_BRANCH} --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
83+
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
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"
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Build GUI for Windows
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 Windows
20+
runs-on: windows-latest
21+
22+
steps:
23+
- name: Clone Repository
24+
uses: actions/checkout@v3
25+
26+
- name: Install Python 3.9
27+
uses: actions/setup-python@v4
28+
with:
29+
python-version: '3.9'
30+
architecture: 'x64'
31+
32+
- name: Install Processing
33+
run: |
34+
mkdir %GITHUB_WORKSPACE%\processing
35+
cd %GITHUB_WORKSPACE%\processing
36+
curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-windows-x64.zip
37+
ls -l %GITHUB_WORKSPACE%\processing
38+
unzip processing-4.2-windows-x64.zip
39+
ls -l %GITHUB_WORKSPACE%\processing\processing-4.2
40+
mkdir %userprofile%\documents\processing\libraries
41+
xcopy %GITHUB_WORKSPACE%\OpenBCI_GUI\libraries\* %userprofile%\documents\processing\libraries /s /i /q
42+
ls -l %userprofile%\documents\processing\libraries
43+
shell: cmd
44+
45+
- name: Set Path
46+
run: |
47+
echo %GITHUB_WORKSPACE%\processing\processing-4.2>>%GITHUB_PATH%
48+
echo C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64>>%GITHUB_PATH%
49+
shell: cmd
50+
51+
- name: Print Path
52+
run: echo %PATH%
53+
shell: cmd
54+
55+
- name: Check processing-java Command
56+
run: processing-java --help
57+
shell: cmd
58+
59+
- name: Run Unit Tests
60+
run: python %GITHUB_WORKSPACE%\GuiUnitTests\run-unittests.py
61+
shell: cmd
62+
63+
- name: Build
64+
run: python %GITHUB_WORKSPACE%\release\build.py
65+
shell: cmd
66+
67+
- name: Sign
68+
run: |
69+
dotnet tool install --global azuresigntool
70+
mt -manifest %GITHUB_WORKSPACE%\release\windows\gui.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\OpenBCI_GUI.exe;#1
71+
mt -manifest %GITHUB_WORKSPACE%\release\windows\java.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\java\bin\java.exe;#1
72+
mt -manifest %GITHUB_WORKSPACE%\release\windows\javaw.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\java\bin\javaw.exe;#1
73+
azuresigntool sign --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URI }}" --azure-key-vault-client-id "${{ secrets.AZURE_CLIENT_ID }}" --azure-key-vault-tenant-id "${{ secrets.AZURE_TENANT_ID }}" --azure-key-vault-client-secret "${{ secrets.AZURE_CLIENT_SECRET }}" --azure-key-vault-certificate "${{ secrets.AZURE_CERT_NAME }}" --timestamp-rfc3161 http://timestamp.digicert.com --verbose %GITHUB_WORKSPACE%\application.windows64\OpenBCI_GUI.exe
74+
shell: cmd
75+
76+
- name: Package
77+
run: python %GITHUB_WORKSPACE%\release\package.py
78+
shell: cmd
79+
80+
- name: Configure AWS credentials
81+
uses: aws-actions/configure-aws-credentials@v2
82+
with:
83+
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
84+
aws-region: ${{ env.AWS_REGION }}
85+
86+
- name: Get Branch Names
87+
id: branch-name
88+
uses: tj-actions/branch-names@v7
89+
90+
- name: Store Build on AWS
91+
run: |
92+
cd ${{ github.workspace }}
93+
ls
94+
echo "${{ steps.branch-name.outputs.head_ref_branch }}"
95+
set S3_BRANCH_FOLDER=s3://openbci-public-gui-v6/${{ steps.branch-name.outputs.head_ref_branch }}
96+
echo %S3_BRANCH_FOLDER%
97+
aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
98+
aws s3 cp ${{ github.workspace }}/. %S3_BRANCH_FOLDER% --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
99+
aws s3 cp ${{ github.workspace }}/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
100+
shell: cmd
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Build GUI for Windows - Processing 3
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches:
7+
- development
8+
9+
jobs:
10+
build:
11+
name: Build for Windows - Processing 3
12+
runs-on: windows-latest
13+
14+
steps:
15+
- name: Clone Repository
16+
uses: actions/checkout@v3
17+
18+
- name: Install Python 3.9
19+
uses: actions/setup-python@v4
20+
with:
21+
python-version: '3.9'
22+
architecture: 'x64'
23+
cache: 'pip'
24+
25+
- name: Set Path
26+
run: echo %GITHUB_WORKSPACE%\processing\processing-3.5.3>>%GITHUB_PATH%
27+
shell: cmd
28+
29+
- name: Print Path
30+
run: echo %PATH%
31+
shell: cmd
32+
33+
- name: Install Processing
34+
run: |
35+
mkdir processing
36+
cd %GITHUB_WORKSPACE%\processing
37+
curl -O -L --insecure https://download.processing.org/processing-3.5.3-windows64.zip
38+
ls -l %GITHUB_WORKSPACE%\processing
39+
unzip processing-3.5.3-windows64.zip
40+
ls -l %GITHUB_WORKSPACE%\processing\processing-3.5.3
41+
mkdir %userprofile%\documents\processing\libraries
42+
xcopy %GITHUB_WORKSPACE%\OpenBCI_GUI\libraries\* %userprofile%\documents\processing\libraries /s /i /q
43+
ls -l %userprofile%\documents\processing\libraries
44+
shell: cmd
45+
46+
- name: Check processing-java
47+
run: processing-java --help
48+
shell: cmd
49+
50+
- name: Build
51+
run: |
52+
python %GITHUB_WORKSPACE%\GuiUnitTests\run-unittests.py
53+
python %GITHUB_WORKSPACE%\release\build.py
54+
shell: cmd

0 commit comments

Comments
 (0)