Run build #111
Workflow file for this run
This file contains 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: {} | |
pull_request: | |
branches: | |
- main | |
types: [opened, synchronize, reopened] | |
schedule: | |
- cron: '0 0 * * *' # 毎日UTCで午前0時に実行 | |
jobs: | |
check-branch: | |
runs-on: ubuntu-latest | |
outputs: | |
current_version: ${{ steps.check_branch.outputs.current_version }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 # すべての履歴とタグを取得 | |
- name: Check event type and branch | |
id: check_branch | |
run: | | |
echo "イベント名: ${{ github.event_name }}" | |
# ProjectSettings.assetから現在のバージョンを取得 | |
current_version=$(grep -m1 'bundleVersion:' ProjectSettings/ProjectSettings.asset | awk '{print $2}') | |
old_version=$(grep '#define MyAppVersion' Installer/setup.txt | cut -d '"' -f2) | |
echo "current_version=${current_version}" >> $GITHUB_OUTPUT | |
if [ "$old_version" != "$current_version" ]; then | |
echo "現在のプロジェクトバージョン: $current_version" | |
echo "#define MyAppVersion \"$current_version\"" > Installer/setup.txt | |
echo "setup.txt の内容: $(cat Installer/setup.txt)" | |
git config --global user.name "github-actions" | |
git config --global user.email "[email protected]" | |
git add Installer/setup.txt | |
git commit -m "Update version file" | |
git push origin HEAD:${{ github.ref }} | |
else | |
echo "バージョンは変更されていません。$current_version" | |
fi | |
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です。バージョンチェックを実行します。" | |
# 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 | |
- 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: ${{ needs.check-branch.outputs.current_version }} | |
- name: Change build folder name | |
run: | | |
cd build | |
mv "StandaloneWindows64" "uDesktopMascot" | |
cd .. | |
- name: Upload the Build for StandaloneWindows64 | |
uses: actions/[email protected] | |
with: | |
name: Build-StandaloneWindows64-v${{ needs.check-branch.outputs.current_version }} | |
path: build | |
- name: Change directory to Installer | |
run: cd Installer | |
- name: Set up Inno Setup | |
uses: Minionguyjpro/[email protected] | |
with: | |
path: 'Installer/setup.iss' | |
- name: Change directory to Root | |
run: cd .. | |
- name: Upload Installer | |
uses: actions/[email protected] | |
with: | |
name: uDesktopMascot_win64_installer_v${{ needs.check-branch.outputs.current_version }} | |
path: "Installer/uDesktopMascot_win64_installer_v${{ needs.check-branch.outputs.current_version }}.exe" | |
build-mac: | |
needs: [check-branch] | |
runs-on: macos-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 | |
- uses: actions/[email protected] | |
with: | |
path: Library | |
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }} | |
restore-keys: | | |
Library- | |
- 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: ${{ needs.check-branch.outputs.current_version }} | |
- name: Change build folder name | |
run: | | |
cd build | |
mv "StandaloneOSX" "uDesktopMascot" | |
cd .. | |
- name: Unzip macOS build output | |
run: | | |
unzip "build/uDesktopMascot/uDesktopMascot.zip" -d "build/uDesktopMascot" | |
rm "build/uDesktopMascot/uDesktopMascot.zip" | |
- name: Upload the Build for StandaloneOSX | |
uses: actions/[email protected] | |
with: | |
name: Build-StandaloneOSX-v${{ needs.check-branch.outputs.current_version }} | |
path: build | |
- name: Set up Installer | |
run: | | |
cd build | |
productbuild --component uDesktopMascot/uDesktopMascot.app /Applications ./uDesktopMascot_mac_installer_v${{ needs.check-branch.outputs.current_version }}.pkg | |
- name: Upload Installer | |
uses: actions/[email protected] | |
with: | |
name: uDesktopMascot_mac_installer_v${{ needs.check-branch.outputs.current_version }} | |
path: build/uDesktopMascot_mac_installer_v${{ needs.check-branch.outputs.current_version }}.pkg |