-
Notifications
You must be signed in to change notification settings - Fork 0
143 lines (137 loc) · 4.33 KB
/
godot-ci.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
name: "godot-ci export"
on:
push:
branches: [ "main" ]
env:
GODOT_VERSION: 4.3
EXPORT_NAME: GodotTemplate
PROJECT_PATH: .
ITCH_USERNAME: studioadriatic
ITCH_GAME_ID: godot-example-ci-cd
jobs:
export-windows:
name: Windows Export
runs-on: ubuntu-24.04
container:
image: barichello/godot-ci:4.3
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Setup
run: |
mkdir -v -p ~/.local/share/godot/export_templates/
mkdir -v -p ~/.config/
mv /root/.config/godot ~/.config/godot
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
- name: Windows Build
run: |
mkdir -v -p build/windows
EXPORT_DIR="$(readlink -f build)"
cd $PROJECT_PATH
godot --headless --verbose --export-release "Windows Desktop" "$EXPORT_DIR/windows/$EXPORT_NAME.exe"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: windows
path: build/windows
export-linux:
name: Linux Export
runs-on: ubuntu-24.04
container:
image: barichello/godot-ci:4.3
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Setup
run: |
mkdir -v -p ~/.local/share/godot/export_templates/
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
- name: Linux Build
run: |
mkdir -v -p build/linux
EXPORT_DIR="$(readlink -f build)"
cd $PROJECT_PATH
godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: linux
path: build/linux
export-web:
name: Web Export
runs-on: ubuntu-24.04
container:
image: barichello/godot-ci:4.3
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Setup
run: |
mkdir -v -p ~/.local/share/godot/export_templates/
mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
- name: Web Build
run: |
mkdir -v -p build/html5
EXPORT_DIR="$(readlink -f build)"
cd $PROJECT_PATH
godot --headless --verbose --export-release "Web" "$EXPORT_DIR/html5/index.html"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: html5
path: build/html5
# export-mac:
# name: Mac Export
# runs-on: ubuntu-24.04
# container:
# image: barichello/godot-ci:4.3
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# lfs: true
# - name: Setup
# run: |
# mkdir -v -p ~/.local/share/godot/export_templates/
# mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
# - name: Mac Build
# run: |
# mkdir -v -p build/mac
# EXPORT_DIR="$(readlink -f build)"
# cd $PROJECT_PATH
# godot --headless --verbose --export-release "macOS" "$EXPORT_DIR/mac/$EXPORT_NAME.zip"
# - name: Upload Artifact
# uses: actions/upload-artifact@v4
# with:
# name: mac
# path: build/mac
deploy:
name: Upload to Itch
runs-on: ubuntu-24.04
needs: [ export-web, export-windows, export-linux ]
strategy:
fail-fast: true
matrix:
channel:
- html5
- windows
- linux
steps:
- uses: actions/download-artifact@v4
with:
name: ${{ matrix.channel }}
path: build/${{ matrix.channel }}
- uses: KikimoraGames/[email protected]
with:
butlerApiKey: ${{ secrets.BUTLER_API_KEY }}
gameData: ./build/${{ matrix.channel }}
itchUsername: ${{ env.ITCH_USERNAME }}
itchGameId: ${{ env.ITCH_GAME_ID }}
buildChannel: ${{ matrix.channel }}
buildNumber: ${{ github.run_number }}