generated from ayutaz/unity_template_repository
-
-
Notifications
You must be signed in to change notification settings - Fork 27
142 lines (123 loc) · 5.15 KB
/
build.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
name: Run build
on:
workflow_dispatch: {}
pull_request:
branches:
- main
types: [opened, synchronize, reopened]
jobs:
check-branch:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0 # すべての履歴とタグを取得
- name: Check event type and branch
run: |
echo "イベント名: ${{ github.event_name }}"
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "これはプルリクエストイベントです。"
echo "PRのソースブランチ: ${{ github.head_ref }}"
echo "PRのターゲットブランチ: ${{ github.base_ref }}"
if [ "${{ github.head_ref }}" == "develop" ] && [ "${{ github.base_ref }}" == "main" ]; then
echo "これは 'develop' から 'main' へのPRです。バージョンチェックを実行します。"
# ProjectSettings.assetから現在のバージョンを取得
current_version=$(grep -m1 'bundleVersion:' ProjectSettings/ProjectSettings.asset | awk '{print $2}')
echo "現在のプロジェクトバージョン: $current_version"
# gitからバージョンタグのリストを取得
git fetch --tags
version_tags=$(git tag -l 'v*')
echo "既存のバージョンタグ: $version_tags"
# タグからバージョン番号を抽出
versions=()
for tag in $version_tags; do
versions+=("${tag#v}")
done
if [ ${#versions[@]} -eq 0 ]; then
highest_version="0.0.0"
else
highest_version=$(printf '%s\n' "${versions[@]}" | sort -V | tail -n1)
fi
echo "最高の既存バージョン: $highest_version"
# 現在のバージョンと最高の既存バージョンを比較
if [ "$(printf '%s\n' "$highest_version" "$current_version" | sort -V | tail -n1)" != "$current_version" ]; then
echo "エラー: 現在のバージョン ($current_version) は最高の既存バージョン ($highest_version) よりも高くありません。"
exit 1
else
echo "現在のバージョン ($current_version) は最高の既存バージョン ($highest_version) よりも高いです。"
fi
else
echo "これは 'develop' から 'main' へのPRではありません。バージョンチェックをスキップします。"
fi
else
echo "プルリクエストイベントではありません。チェックをスキップします。"
fi
build:
needs: [check-branch]
runs-on: ${{ matrix.runsOn }}
name: Run builds for Windows, Mac
strategy:
fail-fast: false
matrix:
targetPlatform:
- StandaloneWindows64
- StandaloneOSX
unityVersion: ['6000.0.31f1']
include:
- targetPlatform: StandaloneWindows64
runsOn: windows-latest
modules: windows-il2cpp
- targetPlatform: StandaloneOSX
runsOn: macos-latest
modules: mac-il2cpp
steps:
- name: Check out my unity project.
uses: actions/[email protected]
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/[email protected]
id: lfs-cache
with:
path: .git/lfs
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
- name: Git LFS Pull
run: |
git lfs pull
git add .
git reset --hard
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- uses: actions/[email protected]
with:
path: Library
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-
- name: Run the build for ${{ matrix.targetPlatform }}
uses: game-ci/[email protected]
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: ${{ matrix.targetPlatform }}
unityVersion: ${{ matrix.unityVersion }}
buildName: 'uDesktopMascot'
- name: Upload the Build for ${{ matrix.targetPlatform }}
uses: actions/[email protected]
with:
name: Build-${{ matrix.targetPlatform }}-${{ steps.vars.outputs.sha_short }}
path: build
- name: Set up Inno Setup
if: matrix.targetPlatform == 'StandaloneWindows64'
uses: Minionguyjpro/[email protected]
with:
path: 'setup.iss'
- name: Upload Installer
if: matrix.targetPlatform == 'StandaloneWindows64'
uses: actions/[email protected]
with:
name: uDesktopMascot_win64_installer
path: "build/uDesktopMascot_win64_installer.exe"