Skip to content

Release 2.4

Release 2.4 #516

name: Windows workflow
on:
push:
branches:
- master
- develop
pull_request:
types:
- opened
branches:
- master
- develop
release:
types: [published]
jobs:
build_unity:
name: Build Unity project
runs-on: windows-2019
outputs:
buildVersion: ${{ steps.buildStep.outputs.buildVersion }}
steps:
# Activation stage
- name: Checkout repository
uses: actions/checkout@v2
with:
lfs: 'true'
- name: LFS pull
run: git lfs pull
- name: Set up IBM Watson credentials
env:
ASSISTANTKEYS: ${{ secrets.ASSISTANTKEYS }}
run: |
echo -n "$env:ASSISTANTKEYS" > $env:GITHUB_WORKSPACE/ibm-credentials.env
echo "path of the credentials resource $env:GITHUB_WORKSPACE/Assets/Resources/ibm-credentials.txt"
$env:IBM_CREDENTIALS_FILE="$env:GITHUB_WORKSPACE/ibm-credentials.env"
$env:TARGET_PLATFORM="Hololens"
# Cache
- name: Caching
uses: actions/cache@v3
with:
path: Library
key: Library-buildWindows-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-buildWindows-
# - name: Determine version manually
# run: |
# chmod +x ./ci/get_version.sh && APP_VERSION=`./ci/get_version.sh` && export APP_VERSION
# echo -n $APP_VERSION > version.txt
# Build stage
- name: Unity builder
uses: game-ci/[email protected]
id: buildStep
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE_WINDOWS }}
with:
targetPlatform: WSAPlayer
unityVersion: 2021.3.8f1
versioning: Semantic
# dirty build needed to include generated Watson credentials
allowDirtyBuild: true
- name: Upload build artifacts
uses: actions/upload-artifact@v2
with:
name: WSAPlayer
path: build/WSAPlayer
retention-days: 90
if-no-files-found: error
build_hololens:
name: Build Hololens
runs-on: windows-2019
needs: build_unity
outputs:
browser_download_url: ${{ steps.releaseUpload.outputs.browser_download_url }}
strategy:
fail-fast: false
matrix:
include:
- hlversion: 1
hlplatform: x86
- hlversion: 2
hlplatform: ARM64
env:
HLVERSION: ${{ matrix.hlversion }}
HLPLATFORM: ${{ matrix.hlplatform }}
JobID: ${{ github.event.release.body }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
lfs: 'true'
- name: LFS pull
run: git lfs pull
- name: Setup Unity UWP
uses: kuler90/setup-unity@v1
with:
unity-modules: universal-windows-platform
- name: Setup developer command prompt for Microsoft Visual C++
uses: ilammy/msvc-dev-cmd@v1
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1
- name: Download WSAPlayer Artifact
uses: actions/download-artifact@v2
with:
name: WSAPlayer
path: build/WSAPlayer
- name: Execute msbuild
run: '& "msbuild.exe" build\WSAPlayer\WSAPlayer\MirageXR.sln -maxcpucount:2 /p:Configuration=Release /p:Platform=$env:HLPLATFORM /p:AppxBundle="Always" /p:AppxBundlePlatforms=$env:HLPLATFORM /p:UseSubFolderForOutputDirDuringMultiPlatformBuild=false'
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: hololens${{ matrix.hlversion }}
path: |
build/WSAPlayer/WSAPlayer/AppPackages/MirageXR/**/*.appxbundle
build/WSAPlayer/WSAPlayer/AppPackages/MirageXR/**/Dependencies/${{ matrix.hlplatform }}/*.appx
retention-days: 90
- name: Build zip for release only
uses: vimtor/action-zip@v1
if: github.event.release && github.event.action == 'published'
with:
files: |
build/WSAPlayer/WSAPlayer/AppPackages/MirageXR/**/*.appxbundle
build/WSAPlayer/WSAPlayer/AppPackages/MirageXR/**/Dependencies/${{ matrix.hlplatform }}/*.appx
dest: build/hololens${{ matrix.hlversion }}.zip
- name: Upload Zip to GitHub Release
uses: svenstaro/upload-release-action@v2
id: releaseUpload
if: github.event.release && github.event.action == 'published'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
asset_name: hololens${{ matrix.hlversion }}.zip
file: build/hololens${{ matrix.hlversion }}.zip
tag: ${{ github.ref }}
overwrite: false
body: ${{ github.event.release.body }}
# Deploy stage
prerelease-notification:
name: Prerelease Slack notification
runs-on: ubuntu-latest
needs: [build_unity, build_hololens]
if: github.ref == 'refs/heads/develop' && !github.event.pull_request
env:
SLACK_URL: ${{ secrets.SLACK_URL }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
APP_VERSION: ${{ needs.build_unity.outputs.buildVersion }}
TARGET_PLATFORM: $RUNNER_OS
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Post notification
run: |
echo $APP_VERSION
sudo apt-get update && sudo apt-get -y install curl
chmod +x ./ci/notify-preview.sh && ./ci/notify-preview.sh
release-notification:
name: Release Slack notification
runs-on: ubuntu-latest
needs: [build_unity, build_hololens]
if: github.event.release && github.event.action == 'published'
env:
SLACK_URL: ${{ secrets.SLACK_URL }}
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
APP_VERSION: ${{ needs.build_unity.outputs.buildVersion }}
DOWNLOAD_URL: ${{ needs.build_hololens.outputs.browser_download_url }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Post notification
run: |
echo $APP_VERSION
sudo apt-get update && sudo apt-get -y install curl
chmod +x ./ci/notify-release.sh && ./ci/notify-release.sh