Skip to content

Run build

Run build #83

Workflow file for this run

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"
echo "current_version=${current_version}" >> $GITHUB_OUTPUT
# 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-windows:
needs: [check-branch]
runs-on: windows-latest
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 StandaloneWindows64
uses: game-ci/[email protected]
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: StandaloneWindows64
unityVersion: '6000.0.31f1'
buildName: 'uDesktopMascot'
versioning: Custom
version: ${{ steps.vars.outputs.current_version }}
- name: Change build folder name
run: |
cd build
mv "StandaloneWindows64" "uDesktopMascot"
cd ..
- name: Push version file
run: |
cd build
echo "#define MyAppVersion \"${{ steps.vars.outputs.current_version }}\"" > setup.txt
cd ..
git config --global user.name "github-actions"
git config --global user.email "[email protected]"
git add setup.txt
git commit -m "Update version file"
git push origin HEAD
- name: Upload the Build for StandaloneWindows64
uses: actions/[email protected]
with:
name: Build-StandaloneWindows64-${{ steps.vars.outputs.sha_short }}
path: build
- name: Set up Inno Setup
uses: Minionguyjpro/[email protected]
with:
path: 'setup.iss'
- name: Upload Installer
uses: actions/[email protected]
with:
name: uDesktopMascot_win64_installer
path: "build/uDesktopMascot_win64_installer.exe"
build-mac:
needs: [check-branch]
runs-on: macos-latest
steps:
- name: Check out my unity project.
uses: actions/[email protected]
- name: Run the build for StandaloneOSX
uses: game-ci/[email protected]
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: StandaloneOSX
unityVersion: '6000.0.31f1'
buildName: 'uDesktopMascot'
versioning: Custom
version: ${{ steps.vars.outputs.current_version }}
- name: Change build folder name
run: |
cd build
mv "StandaloneOSX" "uDesktopMascot"
cd ..
- name: Upload the Build for StandaloneOSX
uses: actions/[email protected]
with:
name: Build-StandaloneOSX-${{ steps.vars.outputs.sha_short }}
path: build