-
-
Notifications
You must be signed in to change notification settings - Fork 385
158 lines (152 loc) · 6.71 KB
/
dev-desktop-builds.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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: Development desktop builds
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
paths-ignore:
- "Translations/*"
- "installer/*.pot"
- "installer/po/*"
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-devdesktop
cancel-in-progress: true
env:
GODOT_VERSION: 4.3
EXPORT_NAME: Pixelorama
jobs:
export-windows:
name: Windows Export 🗔
runs-on: ubuntu-latest
container:
image: docker://barichello/godot-ci:4.3
steps:
- name: Setup WINE and rcedit 🍷
run: |
chown root:root -R ~
godot --headless --quit
echo 'export/windows/wine = "/usr/bin/wine64-stable"' >> ~/.config/godot/editor_settings-4.3.tres
echo 'export/windows/rcedit = "/opt/rcedit.exe"' >> ~/.config/godot/editor_settings-4.3.tres
- name: Checkout 🛎️
uses: actions/checkout@v4
with:
submodules: true
- name: Setup 💻
run: |
mkdir -v -p build/${EXPORT_NAME}-Windows-64bit ~/.local/share/godot/export_templates
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
- name: Import resources once 📦
continue-on-error: true
run: godot --headless -v --import
- name: Windows Build 🔧
run: godot --headless -v --export-release "Windows Desktop 64-bit" ./build/${EXPORT_NAME}-Windows-64bit/$EXPORT_NAME.exe
- name: Copy pixelorama_data folder 📁
run: |
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-64bit
rm ./build/${EXPORT_NAME}-Windows-64bit/pixelorama_data/.gdignore
- name: Upload Artifact 🚀
uses: actions/upload-artifact@v4
with:
name: ${{env.EXPORT_NAME}}-Windows-64bit
path: ./build/${{env.EXPORT_NAME}}-Windows-64bit/
retention-days: 14
export-linux:
name: Linux Export 🐧
runs-on: ubuntu-latest
container:
image: docker://barichello/godot-ci:4.3
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
with:
submodules: true
- name: Setup 💻
run: |
mkdir -v -p build/${EXPORT_NAME}-Linux-64bit build/${EXPORT_NAME}-Linux-ARM64 ~/.local/share/godot/export_templates
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
- name: Import resources once 📦
continue-on-error: true
run: godot --headless -v --import
- name: Linux Build 🔧
run: |
godot --headless -v --export-release "Linux 64-bit" ./build/${EXPORT_NAME}-Linux-64bit/$EXPORT_NAME.x86_64
godot --headless -v --export-release "Linux ARM64" ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64
- name: Give execute permission ☑️
run: |
chmod +x ./build/${EXPORT_NAME}-Linux-64bit/$EXPORT_NAME.x86_64
chmod +x ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64
- name: Copy pixelorama_data folder 📁
run: |
rm ./pixelorama_data/.gdignore
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-64bit
cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM64
- name: Create tar.gz archive 🗜️
run: |
cd build
tar zcvf ${EXPORT_NAME}-Linux-64bit.tar.gz ${EXPORT_NAME}-Linux-64bit
tar zcvf ${EXPORT_NAME}-Linux-ARM64.tar.gz ${EXPORT_NAME}-Linux-ARM64
- name: Upload Linux x86_64 Artifact 🚀
uses: actions/upload-artifact@v4
with:
name: ${{env.EXPORT_NAME}}-Linux-64bit
path: ./build/${{env.EXPORT_NAME}}-Linux-64bit.tar.gz
retention-days: 14
- name: Upload Linux ARM64 Artifact 🚀
uses: actions/upload-artifact@v4
with:
name: ${{env.EXPORT_NAME}}-Linux-ARM64
path: ./build/${{env.EXPORT_NAME}}-Linux-ARM64.tar.gz
retention-days: 14
export-mac:
name: Mac Export 🍎
runs-on: macos-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
with:
submodules: true
- name: Setup environment 🔧
run: |
export GODOT_VERSION=${GODOT_VERSION}
export EXPORT_NAME=${EXPORT_NAME}
- name: Download and extract export templates 💾
run: |
mkdir -v -p "/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable"
wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz
unzip -a Godot_v${GODOT_VERSION}-stable_export_templates.tpz
mv ./templates/* "/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable"
- name: Download Godot headless binary 🤖
run: |
wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_macos.universal.zip
unzip -a Godot_v${GODOT_VERSION}-stable_macos.universal.zip
- name: Setup 💻
run: mkdir -v -p ./build/mac
- name: Import resources once 📦
continue-on-error: true
run: ./Godot.app/Contents/MacOS/Godot --headless -v --import
- name: Mac Build 🔧
run: |
chown runner ./Godot.app/Contents/MacOS/Godot
chmod +x ./Godot.app/Contents/MacOS/Godot
./Godot.app/Contents/MacOS/Godot --headless -v --export-release "macOS" ./build/mac/${EXPORT_NAME}.zip
- name: Make application executable 🔧
run: |
unzip -a ./build/mac/${EXPORT_NAME}.zip -d ./build/mac
chmod +x ./build/mac/${EXPORT_NAME}.app/Contents/MacOS/${EXPORT_NAME}
rm ./build/mac/${EXPORT_NAME}.zip
- name: Fix application icon 🖼
run: sips -s format icns ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns --out ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns
- name: Copy pixelorama_data folder 📁
run: |
cp -R ./pixelorama_data ./build/mac/${EXPORT_NAME}.app/Contents/Resources
rm ./build/mac/${EXPORT_NAME}.app/Contents/Resources/pixelorama_data/.gdignore
- name: Ad-hoc signing ✍️
run: codesign -s - --force --deep ./build/mac/${EXPORT_NAME}.app
- name: Create DMG archive 🔧
run: hdiutil create -srcfolder ./build/mac -fs HFS+ -volname ${EXPORT_NAME} ./build/mac/${EXPORT_NAME}.dmg
- name: Upload Artifact 🚀
uses: actions/upload-artifact@v4
with:
name: ${{env.EXPORT_NAME}}-Mac
path: ./build/mac/${{env.EXPORT_NAME}}.dmg
retention-days: 14