This repository has been archived by the owner on Nov 14, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (123 loc) · 4.86 KB
/
build.yaml
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
name: Build Platform Target
on:
push:
branches: [main]
pull_request:
branches: [main]
types: [opened, reopened, edited, synchronize]
jobs:
build:
runs-on: ubuntu-latest
permissions:
pull-requests: write
actions: write
container:
image: fedora:39
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BENCHER_API_TOKEN: ${{ secrets.BENCHER_API_TOKEN }}
GODOT_BASE_BRANCH: main
CACHE_NAME: v-sekai-world
strategy:
fail-fast: false
matrix:
precision: [double]
platform: [macos]
target: [editor, template_release, template_debug]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}
cancel-in-progress: true
steps:
- name: Set up dependencies
run: dnf install -y just git
- name: Set up placeholders
run: |
mkdir -p godot/bin/
mkdir -p tpz/
mkdir -p editor
echo "This is the README for the Godot bin directory." > godot/bin/readme.md
echo "This is the README for the TPZ directory." > tpz/readme.md
echo "This is the README for the Editor directory." > editor/readme.md
- name: Checkout code
uses: actions/checkout@v4
- name: Cache SCons cache
uses: actions/cache@v4
if: always()
with:
path: |
.scons_cache
emsdk
osxcross
jdk
android_sdk
vulkan_sdk
mingw
key: ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}
restore-keys: |
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }}
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-refs/heads/${{ env.GODOT_BASE_BRANCH }}
${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}
- name: Fetch dependencies and Build Platform Target
run: |
just install_packages
hyperfine --show-output --runs 1 'just $PLATFORM_ARGS && just build-platform-target ${{ matrix.platform }} ${{ matrix.target }} ${{ matrix.precision }}'
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}
path: godot/bin/*
- name: Upload TPZ File
uses: actions/upload-artifact@v4
with:
name: Godot-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}.tpz
path: tpz
- name: Upload Godot Editor Files
uses: actions/upload-artifact@v4
with:
name: Godot-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.precision }}
path: editor
merge:
runs-on: ubuntu-latest
needs: ["build"]
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: v-sekai-world
delete-merged: true
release:
runs-on: ubuntu-latest
needs: merge
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: latest.v-sekai-editor-${{ github.run_number }}
release_name: Latest Release of V-Sekai Godot Engine Editor
draft: false
prerelease: true
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: v-sekai-world
name: v-sekai-world
- name: Zip Artifacts
run: |
tree
zip -r v-sekai-world.zip v-sekai-world
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./v-sekai-world.zip
asset_name: v-sekai-world.zip
asset_content_type: application/zip