-
Notifications
You must be signed in to change notification settings - Fork 3
143 lines (122 loc) · 3.51 KB
/
multi-platform.yml
File metadata and controls
143 lines (122 loc) · 3.51 KB
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: Build Geode Mod
on:
workflow_dispatch:
inputs:
build_type:
description: 'Build Type'
required: true
default: 'debug'
type: choice
options:
- release
- debug
push:
branches:
- "**"
jobs:
build:
strategy:
fail-fast: false
matrix:
config:
- name: Windows
os: ubuntu-latest
target: Win64
- name: macOS
os: macos-latest
- name: Android32
os: ubuntu-latest
target: Android32
- name: Android64
os: ubuntu-latest
target: Android64
- name: iOS
os: macos-latest
target: iOS
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
continue-on-error: ${{ github.event.inputs.build_type != 'release' }}
steps:
- uses: actions/checkout@v4
- name: Set Release Build
run: echo "RELEASE_BUILD=${{ github.event.inputs.build_type == 'release' }}" >> $GITHUB_ENV
- name: Build the mod
uses: hiimjasmine00/build-geode-mod@xwin
with:
bindings: geode-sdk/bindings
bindings-ref: main
combine: true
build-config: ${{ github.event.inputs.build_type != 'release' && 'RelWithDebInfo' || 'Release' }}
export-pdb: true
export-symbols: true
target: ${{ matrix.config.target }}
package:
name: Package builds
runs-on: ubuntu-latest
needs: ['build']
steps:
- uses: geode-sdk/build-geode-mod/combine@main
id: build
- uses: actions/upload-artifact@v4
with:
name: build-output
path: ${{ steps.build.outputs.build-output }}
nightly:
name: Create Nightly Release
runs-on: ubuntu-latest
if: github.event.inputs.build_type != 'release'
needs: ['package']
permissions:
contents:
write
steps:
- uses: actions/download-artifact@v4
with:
path: './artifacts/'
- name: Create Nightly Release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: nightly
name: 'Development Release'
body: |
Development release for commit ${{ github.sha }}. Built in RelWithDebInfo.
files: |
./artifacts/build-output/*.geode
./artifacts/build-output/*.pdb
./artifacts/build-output/*.sym
release:
name: Create Draft Release
runs-on: ubuntu-latest
if: github.event.inputs.build_type == 'release'
needs: ['package']
permissions:
contents:
write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: './artifacts/'
- name: Read mod version & mod id
id: read_version
run: |
echo "MOD_VERSION=$(jq -r '.version' mod.json)" >> $GITHUB_ENV
- name: Create Draft Release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.MOD_VERSION }}
name: ${{ env.MOD_VERSION }}
body: |
TODO before publishing:
- mark if pre-release
- add changelog
- remove this
draft: true
files: |
./artifacts/build-output/*.geode
./artifacts/build-output/*.pdb
./artifacts/build-output/*.sym