GitHub Actions와 Unity-CI로 간단 CI 빌드 구축 WebGL 대응판

5263 단어 GitHubActionsUnity
이것은 Unity #2 Advent Calendar 2020의 7 일째 기사입니다.

개요


  • GitHub Actions로 간편한 CI 구축
  • Unity-CI에서 즉시 빌드 실행
  • WebGL 버전 출력 가능

  • GitHub Actions를 사용하여 WebGL 버전의 빌드를 만듭니다.
    본래는 config용으로 세세한 설정이 필요합니다만,
    Unity의 Actions를 통합한 라이브러리Unity-CI의 힘을 빌려 손쉽게 빌드까지 실시합니다
    리포지토리가 있으면 3분 안에 빌드할 수 있습니다.


    GitHub Actions 정보



    htps : // 기주 b. 이. jp / 훗 아츠레 s / 아 c 치온 s
    리포지토리 변경에 따라 구성 스크립트를 실행합니다.
    설정 파일은 yml 파일로 작성할 수 있습니다.
    리포지토리 페이지의 Actions에서 실행 상태 및 기록을 볼 수 있습니다.

    Unity-CI 정보



    h tps : // 우에 ty-. 코 m / 두 cs
    Unity+CI의 Actions를 정리하고 있으며,
    GitHub뿐만 아니라 GitLab, Travis CI 등과도 연계 할 수있는 것 같습니다.
    이번은 Unity-CI의 GitHub 페이지을 참고로 CI 구축을 실시합니다

    Unity 정품 인증 준비



    Unity-CI 활성화을 참조하여 활성화
    1. activation.yml을 다음과 같이 만들고 .github/workflows 아래에 둡니다.
    name: Acquire activation file
    on: [push]
    jobs:
      activation:
        name: Request manual activation file 🔑
        runs-on: ubuntu-latest
        steps:
          # Request manual activation file
          - name: Request manual activation file
            id: getManualLicenseFile
            uses: webbertakken/[email protected]
            with:
              unityVersion: 2019.2.11f1 # ※使用するUnityのバージョンに一致させます
          # Upload artifact (Unity_vXXXX.X.XXXX.alf)
          - name: Expose as artifact
            uses: actions/upload-artifact@v1
            with:
              name: ${{ steps.getManualLicenseFile.outputs.filePath }}
              path: ${{ steps.getManualLicenseFile.outputs.filePath }}
    
    

    2. 커밋 푸시를 수행하면 Action이 실행되고 Action 결과의 Artifacts에 Unity_vXXXX.X.XXXX.alf가 생성됩니다.
    Unity_vXXXX.X.XXXX.alf를 다운로드하세요.

    Unity-CI는 gableroux/unity3d 이미지를 사용하므로 새 버전이 지원되지 않을 수 있습니다.
    최신 버전은 여기에서 확인할 수 있습니다.

    3. 수동 라이센스 페이지에서 Unity_vXXXX.X.XXXX.alf를 업로드하면 Unity_vXXXX.x.ulf를 다운로드 할 수 있습니다.

    4. 리포지토리 페이지의 Settings > serctes > new repository secret ( htps : // 기주 b. 이 m / x x / x / setchin gs / sec ts / a c chion s / w
    ) 선택
    Unity_vXXXX.x.ulf의 내용(xml 형식)을 복사하여 Value에 붙여넣습니다.
    secret의 이름은 UNITY_LICENSE입니다.

    5. 이 Action은 1번 실행하면 되므로 삭제해 둡니다

    WebGL 빌드



    빌드 페이지을 참조하여 WebGL을 빌드합니다.
    1. main.yml을 다음과 같이 만들고 .github/workflows 아래에 둡니다.
    name: Actions 😎
    
    on:
      pull_request: {}
      push: { branches: [main] }
    
    env:
      UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} ※secretで設定した値が実行時に入ります
    
    jobs:
      build:
        name: Build my project ✨
        runs-on: ubuntu-latest
        steps:
          # Checkout
          - name: Checkout repository
            uses: actions/checkout@v2
    
          # Cache
          - uses: actions/[email protected]
            with:
              path: Library
              key: Library
    
          # Build
          - name: Build project
            uses: webbertakken/[email protected]
            with:
              unityVersion: 2019.2.11f1 ※使用するUnityのバージョンに一致させます
              targetPlatform: WebGL
    
          # Output
          - uses: actions/upload-artifact@v1
            with:
              name: Build
              path: build
    
    

    샘플에서 LFS 사용 및 테스트 제외

    2. 커밋 푸시를 수행하면 Action이 실행되고 Action 결과의 Artifacts에 WebGL 빌드가 생성됩니다.
    on : 항목으로 실행 트리거를 제어 할 수 있으며, 이번에는 끌어 오기 요청 또는 메인 브랜치 업데이트 타이밍에서 실행됩니다.

    보충



    실행 제한



    GitHub Actions는 무료 플랜으로 2000분/월까지 이용 가능
    거의 빈 프로젝트로 10분/1 빌드
    요금표

    이미지 OS



    이번 이미지는 우분투 버전을 이용하고 있습니다.
    Unity-CI는 현재 우분투 버전만 지원하는 것 같습니다.
    따라서 독립형 버전은 빌드할 수 없습니다.
    h tps : // 우에 ty-. 코 m / 드 cs / 우니 ty - / c r r - s
    GitHub Actions 자체는 다른 OS(Windwos나 MacOS)도 선택할 수 있지만 이용 비용이 늘어나는 것 같습니다.

    제한적이지만 빌드 머신 준비 및 비용이 필요하지 않습니다.
    곧바로 CI 빌드 환경을 준비할 수 있기 때문에 게임 잼으로의 도입을 해 보는 것은 어떻습니까?

    좋은 웹페이지 즐겨찾기