Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions .github/workflows/deploy-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Unity WebGL Automatic Build 👽✨🚀
on:
# push:
# branches:
# - 'main'
pull_request:
branches:
- 'main'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
name: Unity Build 👽
runs-on: ubuntu-latest
steps:
# Checkout (without LFS)
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{secrets.PAT}}
# Git LFS
- name: Create LFS file list
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id

- name: Restore LFS cache
uses: actions/cache@v2
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

# # Cache
- uses: actions/cache@v2
with:
path: Library
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-

# # Build
- name: Build project
uses: game-ci/unity-builder@v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: ${{ vars.TARGET_PLATFORM }}
buildsPath: ${{ vars.BUILD_PATH }}
allowDirtyBuild: true
# Output: Artifact
- name: Upload Build Artifact
uses: actions/upload-artifact@v2
with:
name: ${{ vars.ARTIFACT_NAME }}
path: ${{ vars.BUILD_PATH }}
# Deployment
- name: Stash build result and reset local changes
run: |
echo "Applying initial configs"
sudo chown -R $USER:$USER ${{ vars.BUILD_PATH }}
git config --global user.email "${{ secrets.GH_EMAIL }}"
git config --global user.name "${{ secrets.GH_USERNAME }}"
echo "Stash and reset"
git add ${{ vars.BUILD_PATH }}/${{ vars.TARGET_PLATFORM }}
git stash push ${{ vars.BUILD_PATH }}/${{ vars.TARGET_PLATFORM }}
git stash list
git reset --hard
sudo git clean -d -x -f
# Deployment
- name: Cleaning gh-pages branch
run: |
echo "Switch to ${{ vars.DEPLOYMENT_BRANCH }}"
git switch -f ${{ vars.DEPLOYMENT_BRANCH }}
git reset --hard
sudo git clean -d -x -f
rm -r *
git add *
git commit -m "cleaning branch"
git push
- name: Applying stashed files to ${{ vars.DEPLOYMENT_BRANCH }}
run: |
echo "Applying stash"
git stash apply stash@{0}
- name: Copying files to root directory
run: |
cd ${{ vars.BUILD_PATH }}/${{ vars.TARGET_PLATFORM }}/${{ vars.TARGET_PLATFORM }}
ls
cp -r * ../../../
cd ../../../
rm -r ${{ vars.BUILD_PATH }}
ls
pwd
- name: Pushing deployment to gh-pages branch
run: |
pwd
git status
git add *
git commit -m "Deployment"
git push
git reset --hard
sudo git clean -d -x -f