Run build #50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run build | |
on: | |
workflow_dispatch: {} | |
push: | |
tags: | |
- 'v*' | |
pull_request: | |
branches: | |
- main | |
types: [opened, synchronize, reopened] | |
jobs: | |
check-branch: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' # PRイベントの場合にのみ実行 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # すべての履歴とタグを取得 | |
- name: Check PR branch | |
run: | | |
echo "このPRのソースブランチは: ${{ github.head_ref }}" | |
if [[ "${{ github.head_ref }}" == "develop" ]]; then | |
echo "このPRは 'develop' ブランチからのものです。ビルドを続行します。" | |
else | |
echo "このPRは '${{ github.head_ref }}' ブランチからのものです。ビルドを続行します。" | |
fi | |
- name: Check version number | |
if: ${{ github.head_ref == 'develop' && github.base_ref == 'main' }} | |
run: | | |
# 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 | |
echo "既存のバージョン: ${versions[@]}" | |
# 最高の既存バージョンを見つける | |
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 | |
build: | |
needs: check-branch # check-branch ジョブの成功が必要 | |
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 | |
runs-on: ${{ matrix.runsOn }} | |
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 }} | |
- name: Upload the Build for ${{ matrix.targetPlatform }} | |
uses: actions/[email protected] | |
with: | |
name: Build-${{ matrix.targetPlatform }}-${{ steps.vars.outputs.sha_short }} | |
path: build |