Skip to content

Commit 27dd84b

Browse files
authored
10.9 workflow (#114)
* 10.9 workflow * Workflow fix * macOS 10.9 * Separate github actions workflows? * Removed python-app.yml * use typing-extensions for python 3.7 compat * More macOS10.9 fixes * Updated version
1 parent 30eeb64 commit 27dd84b

File tree

25 files changed

+1385
-380
lines changed

25 files changed

+1385
-380
lines changed

.github/workflows/linux.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Linux
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- dev
7+
- stable
8+
pull_request:
9+
branches:
10+
- master
11+
- dev
12+
- stable
13+
jobs:
14+
x86-64:
15+
runs-on: ubuntu-18.04
16+
steps:
17+
18+
- name: Install deb packages
19+
run: >-
20+
sudo apt install
21+
dos2unix
22+
gettext
23+
24+
- uses: actions/checkout@v2
25+
with:
26+
fetch-depth: 0
27+
28+
- name: Set up Python 3.9
29+
uses: actions/setup-python@v2
30+
with:
31+
python-version: 3.9
32+
33+
- name: Install dependencies
34+
run: |
35+
python -m pip install --upgrade pip pipenv
36+
37+
- name: Run pipenv install
38+
run: |
39+
pipenv install --deploy
40+
41+
- name: Download pyinstaller source
42+
run: |
43+
wget https://github.com/pyinstaller/pyinstaller/releases/download/v4.2/PyInstaller-4.2.tar.gz
44+
echo "f5c0eeb2aa663cce9a5404292c0195011fa500a6501c873a466b2e8cad3c950c *PyInstaller-4.2.tar.gz" > SHA256SUMS
45+
shasum -c SHA256SUMS
46+
tar xf PyInstaller-4.2.tar.gz
47+
48+
- name: Compile new bootloader for pyinstaller
49+
run: |
50+
cd pyinstaller-4.2/bootloader
51+
CC="gcc -no-pie" ./waf all
52+
53+
- name: Replace pyinstaller with custom version
54+
run: |
55+
pipenv uninstall pyinstaller
56+
pipenv install `pwd`/pyinstaller-4.2
57+
58+
- name: Update version
59+
run: |
60+
fsbuild/version --update --auto
61+
62+
- name: Bootstrap
63+
run: fsbuild/bootstrap
64+
65+
- name: Build
66+
run: |
67+
pipenv run fsbuild/build
68+
69+
- name: Bundle
70+
run: |
71+
pipenv run fsbuild/bundle
72+
73+
- name: Archive
74+
run: |
75+
fsbuild/archive
76+
77+
- uses: actions/upload-artifact@v2
78+
with:
79+
name: Linux_x86-64
80+
path: fsbuild/_dist/*
81+
82+
- name: Upload build to Dropbox folder
83+
if: >-
84+
github.ref == 'refs/heads/master' ||
85+
github.ref == 'refs/heads/dev' ||
86+
github.ref == 'refs/heads/stable'
87+
run: |
88+
python3 -m pip install dropbox
89+
fsbuild/upload
90+
env:
91+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
92+
DROPBOX_ACCESS_TOKEN: ${{ secrets.DROPBOX_ACCESS_TOKEN }}

.github/workflows/macos.yml

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
name: macOS
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- dev
7+
- stable
8+
pull_request:
9+
branches:
10+
- master
11+
- dev
12+
- stable
13+
jobs:
14+
x86-64:
15+
runs-on: macos-10.15
16+
steps:
17+
18+
- name: Install brew packages
19+
run: |
20+
brew install dos2unix
21+
22+
- uses: actions/checkout@v2
23+
with:
24+
fetch-depth: 0
25+
26+
- name: Check Python version
27+
run: |
28+
which python3
29+
python3 --version
30+
which python3.9
31+
python3.9 --version
32+
33+
- name: Download Python
34+
run: |
35+
wget https://www.python.org/ftp/python/3.9.5/python-3.9.5-macosx10.9.pkg
36+
echo "f65931e47676f8e835f70d4fc3cac0cb2ee9cd7393af4b90cc7f207d23437b75 *python-3.9.5-macosx10.9.pkg" > SHA256SUMS
37+
shasum -c SHA256SUMS
38+
39+
- name: Install Python
40+
run: |
41+
sudo installer -pkg python-3.9.5-macosx10.9.pkg -target /
42+
43+
- name: Add Python to PATH
44+
run: |
45+
echo /Library/Frameworks/Python.framework/Versions/3.9/bin >> $GITHUB_PATH
46+
47+
- name: Install Python dependencies
48+
run: |
49+
python3 -m pip install --upgrade pip pipenv dmgbuild
50+
51+
- name: Install Node dependencies
52+
run: |
53+
npm install -g appdmg
54+
55+
- name: Run pipenv install
56+
run: |
57+
pipenv install --deploy
58+
59+
- name: Update version
60+
run: |
61+
fsbuild/version --update --auto
62+
63+
- name: Bootstrap
64+
run: fsbuild/bootstrap
65+
66+
- name: Build
67+
run: |
68+
pipenv run fsbuild/build
69+
70+
- name: Bundle
71+
run: |
72+
fsbuild/bundle
73+
74+
- name: Prepare signing certificate
75+
run: |
76+
echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode > certificate.p12
77+
security create-keychain -p $KEYCHAIN_PASSWORD build.keychain
78+
security default-keychain -s build.keychain
79+
security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain
80+
security import certificate.p12 -k build.keychain -P $SIGNING_CERTIFICATE_PASSWORD -T /usr/bin/codesign
81+
security set-key-partition-list -S apple-tool:,apple: -s -k $KEYCHAIN_PASSWORD build.keychain
82+
env:
83+
KEYCHAIN_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
84+
SIGNING_CERTIFICATE_P12_DATA: ${{ secrets.MACOS_CERTIFICATE_P12_DATA }}
85+
SIGNING_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
86+
87+
- name: Sign
88+
run: fsbuild/sign
89+
90+
- name: Notarize
91+
run: fsbuild/notarize
92+
env:
93+
NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
94+
NOTARIZATION_PROVIDER: ${{ secrets.MACOS_NOTARIZATION_PROVIDER }}
95+
NOTARIZATION_USERNAME: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
96+
97+
- name: Archive
98+
run: fsbuild/archive
99+
100+
- name: Build DMG
101+
run: fsbuild/dmg --build
102+
103+
- name: Unlock keychain again
104+
run: |
105+
echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode > certificate.p12
106+
security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain
107+
env:
108+
KEYCHAIN_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
109+
SIGNING_CERTIFICATE_P12_DATA: ${{ secrets.MACOS_CERTIFICATE_P12_DATA }}
110+
SIGNING_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
111+
112+
- name: Sign DMG
113+
run: fsbuild/dmg --sign
114+
115+
- name: Notarize DMG
116+
run: fsbuild/dmg --notarize
117+
env:
118+
NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
119+
NOTARIZATION_PROVIDER: ${{ secrets.MACOS_NOTARIZATION_PROVIDER }}
120+
NOTARIZATION_USERNAME: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
121+
122+
- uses: actions/upload-artifact@v2
123+
with:
124+
name: macos_x86-64
125+
path: fsbuild/_dist/*
126+
127+
- name: Upload build to Dropbox folder
128+
if: >-
129+
github.ref == 'refs/heads/master' ||
130+
github.ref == 'refs/heads/dev' ||
131+
github.ref == 'refs/heads/stable'
132+
run: |
133+
python3 -m pip install dropbox
134+
fsbuild/upload
135+
env:
136+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
137+
DROPBOX_ACCESS_TOKEN: ${{ secrets.DROPBOX_ACCESS_TOKEN }}

.github/workflows/macos10.9.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: macOS10.9
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- dev
7+
- stable
8+
pull_request:
9+
branches:
10+
- master
11+
- dev
12+
- stable
13+
jobs:
14+
x86-64:
15+
runs-on: macos-10.15
16+
env:
17+
SYSTEM_OS_DIST: macOS10.9
18+
steps:
19+
20+
- name: Install brew packages
21+
run: |
22+
brew install dos2unix
23+
24+
- uses: actions/checkout@v2
25+
with:
26+
fetch-depth: 0
27+
28+
- name: Download Python
29+
run: |
30+
wget https://www.python.org/ftp/python/3.7.9/python-3.7.9-macosx10.9.pkg
31+
echo "bf54a14eef23467991e8c7a88c7307762e484c024a94ec1ee292ac1db3d41fc9 *python-3.7.9-macosx10.9.pkg" > SHA256SUMS
32+
shasum -c SHA256SUMS
33+
34+
- name: Install Python
35+
run: |
36+
sudo installer -pkg python-3.7.9-macosx10.9.pkg -target /
37+
38+
- name: Add Python to PATH
39+
run: |
40+
echo /Library/Frameworks/Python.framework/Versions/3.7/bin >> $GITHUB_PATH
41+
42+
- name: Install dependencies
43+
run: |
44+
python3 -m pip install --upgrade pip pipenv dmgbuild
45+
46+
- name: Modifications for macOS 10.9
47+
run: |
48+
cp fsbuild/macOS10.9/* .
49+
50+
- name: Install Node dependencies
51+
run: |
52+
npm install -g appdmg
53+
54+
- name: Run pipenv install
55+
run: |
56+
pipenv install --deploy
57+
58+
- name: Update version
59+
run: |
60+
fsbuild/version --update --auto
61+
62+
- name: Bootstrap
63+
run: fsbuild/bootstrap
64+
65+
- name: Build
66+
run: |
67+
pipenv run fsbuild/build
68+
69+
- name: Bundle
70+
run: |
71+
fsbuild/bundle
72+
73+
- name: Prepare signing certificate
74+
run: |
75+
echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode > certificate.p12
76+
security create-keychain -p $KEYCHAIN_PASSWORD build.keychain
77+
security default-keychain -s build.keychain
78+
security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain
79+
security import certificate.p12 -k build.keychain -P $SIGNING_CERTIFICATE_PASSWORD -T /usr/bin/codesign
80+
security set-key-partition-list -S apple-tool:,apple: -s -k $KEYCHAIN_PASSWORD build.keychain
81+
env:
82+
KEYCHAIN_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
83+
SIGNING_CERTIFICATE_P12_DATA: ${{ secrets.MACOS_CERTIFICATE_P12_DATA }}
84+
SIGNING_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
85+
86+
- name: Sign
87+
run: fsbuild/sign
88+
89+
- name: Notarize
90+
run: fsbuild/notarize
91+
env:
92+
NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
93+
NOTARIZATION_PROVIDER: ${{ secrets.MACOS_NOTARIZATION_PROVIDER }}
94+
NOTARIZATION_USERNAME: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
95+
96+
- name: Archive
97+
run: fsbuild/archive
98+
99+
- name: Build DMG
100+
run: fsbuild/dmg --build
101+
102+
- name: Unlock keychain again
103+
run: |
104+
echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode > certificate.p12
105+
security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain
106+
env:
107+
KEYCHAIN_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
108+
SIGNING_CERTIFICATE_P12_DATA: ${{ secrets.MACOS_CERTIFICATE_P12_DATA }}
109+
SIGNING_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
110+
111+
- name: Sign DMG
112+
run: fsbuild/dmg --sign
113+
114+
- name: Notarize DMG
115+
run: fsbuild/dmg --notarize
116+
env:
117+
NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
118+
NOTARIZATION_PROVIDER: ${{ secrets.MACOS_NOTARIZATION_PROVIDER }}
119+
NOTARIZATION_USERNAME: ${{ secrets.MACOS_NOTARIZATION_USERNAME }}
120+
121+
- uses: actions/upload-artifact@v2
122+
with:
123+
name: macos_x86-64
124+
path: fsbuild/_dist/*
125+
126+
- name: Upload build to Dropbox folder
127+
if: >-
128+
github.ref == 'refs/heads/master' ||
129+
github.ref == 'refs/heads/dev' ||
130+
github.ref == 'refs/heads/stable'
131+
run: |
132+
python3 -m pip install dropbox
133+
fsbuild/upload
134+
env:
135+
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
136+
DROPBOX_ACCESS_TOKEN: ${{ secrets.DROPBOX_ACCESS_TOKEN }}

0 commit comments

Comments
 (0)