-
Notifications
You must be signed in to change notification settings - Fork 0
167 lines (139 loc) · 5.16 KB
/
Copy pathweekly.yml
File metadata and controls
167 lines (139 loc) · 5.16 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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
name: Weekly Build
on:
schedule:
- cron: '0 0 * * 0' # 毎週日曜日の 00:00 UTC に実行
workflow_dispatch:
env:
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
PYTHONIOENCODING: utf8
SCONS_CACHE: ~/.scons_cache
permissions:
contents: read
jobs:
gdextension:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: 🐧 Linux (GCC)
os: ubuntu-latest
platform: linux
- name: 🏁 Windows (x86_64, MSVC)
os: windows-latest
platform: windows
- name: 🍎 macOS (universal)
os: macos-latest
platform: macos
- name: 🤖 Android (arm64)
os: ubuntu-latest
platform: android
- name: 🍏 iOS (arm64)
os: macos-latest
platform: ios
- name: 🌐 Web (wasm32)
os: ubuntu-latest
platform: web
defaults:
run:
shell: zsh {0}
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: recursive
- name: clone Godot Cpp repository
uses: GuillaumeFalourd/clone-github-repo-action@19817562c346ff60f9935158dede6c5ece8fd0ac # v2.3
with:
depth: 1
branch: master
owner: 'godotengine'
repository: 'godot-cpp'
- name: setup for gdextension
uses: ./.github/actions/setup-extension
with:
platform: ${{ matrix.platform }}
os: ${{ matrix.os }}
- name: Setup Rust (Stable)
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
- name: Setup Rust Cache
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
with:
workspaces: "ss_player/SpriteStudio-SDK"
key: ${{ matrix.platform }}
- name: Setup SCons Cache
uses: actions/cache@v6
with:
path: ~/.scons_cache
key: ${{ runner.os }}-${{ matrix.platform }}-scons-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.platform }}-scons-
# weekly は develop HEAD の検証なので、リリース版 SDK (download-sdk) では
# なく submodule のソースから runtime をビルドする (pr.yml と同じ方針)。
- name: Build Runtime (SDK)
if: matrix.platform == 'linux'
run: ./scripts/build-runtime.sh platform=linux build=release
- name: Build Runtime (SDK, macOS universal)
if: matrix.platform == 'macos'
run: |
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
./scripts/build-runtime.sh platform=macos arch=universal build=release
- name: Build Runtime (SDK, iOS)
if: matrix.platform == 'ios'
run: |
rustup target add aarch64-apple-ios
rustup target add aarch64-apple-ios-sim
rustup target add x86_64-apple-ios
./scripts/build-runtime.sh platform=ios build=release
- name: Build Runtime (SDK, Android)
if: matrix.platform == 'android'
run: |
cargo install cargo-ndk
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add x86_64-linux-android
./scripts/build-runtime.sh platform=android build=release
- name: Build Runtime (SDK, Web)
if: matrix.platform == 'web'
run: |
rustup target add wasm32-unknown-unknown
rustup toolchain install nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup component add rust-src --toolchain nightly
./scripts/build-runtime.sh platform=web build=release
- name: Build Runtime (SDK, Windows)
if: matrix.platform == 'windows'
shell: pwsh
run: ./scripts/build-runtime.ps1 platform=windows build=release
- name: build Linux
if: matrix.platform == 'linux'
run: ./scripts/release-gdextension-linux.sh
# Weekly artifacts are deliberately NOT code-signed: this is a continuous
# build for our own verification, not something we distribute, so it has no
# business handling the Developer ID certificate. Signing belongs to
# release.yml alone. The scripts no-op on signing without
# APPLE_SIGNING_IDENTITY, so nothing else has to change here.
- name: build macOS
if: matrix.platform == 'macos'
run: |
./scripts/release-gdextension-macos.sh
- name: build iOS
if: matrix.platform == 'ios'
run: |
./scripts/release-gdextension-ios.sh
- name: build Android
if: matrix.platform == 'android'
run: ./scripts/release-gdextension-android.sh
- name: build Windows
if: matrix.platform == 'windows'
shell: pwsh
run: |
./scripts/release-gdextension-windows.ps1
Remove-Item -Recurse -Force ./bin/windows/*.exp
Remove-Item -Recurse -Force ./bin/windows/*.lib
- name: build Web
if: matrix.platform == 'web'
run: ./scripts/release-gdextension-web.sh