Merge pull request #1755 from WEKIT-ECS/release_2.4 #517
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: 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 |