[DX-3682] feat: windows pkce (alpha) #521
Workflow file for this run
This file contains hidden or 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: UI Tests 🧪 | |
on: | |
workflow_dispatch: | |
inputs: | |
targetPlatform: | |
description: "Select the platform to build and test" | |
required: true | |
default: "All" | |
type: choice | |
options: | |
- All | |
- StandaloneOSX | |
- StandaloneWindows64 | |
- Android | |
- iOS | |
push: | |
branches: [main] | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build ${{ matrix.targetPlatform }} for AltTester 🛠️ | |
runs-on: ubuntu-latest-8-cores | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- targetPlatform: StandaloneOSX | |
buildMethod: MacBuilder.BuildForAltTester | |
buildPath: sample/Builds/MacOS | |
- targetPlatform: StandaloneWindows64 | |
buildMethod: WindowsBuilder.BuildForAltTester | |
buildPath: sample/Builds/Windows64 | |
- targetPlatform: Android | |
buildMethod: MobileBuilder.BuildForAltTester | |
buildPath: sample/Builds/Android | |
steps: | |
- uses: actions/checkout@v3 | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
with: | |
lfs: true | |
- uses: actions/cache@v3 | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
with: | |
path: Library | |
key: Library-${{ matrix.targetPlatform }}-${{ hashFiles('sample/Assets/**', 'sample/Packages/**', 'sample/ProjectSettings/**') }} | |
restore-keys: | | |
Library-${{ matrix.targetPlatform }} | |
Library- | |
- name: Build project | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
uses: game-ci/unity-builder@v4 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
with: | |
targetPlatform: ${{ matrix.targetPlatform }} | |
projectPath: sample | |
buildMethod: ${{ matrix.buildMethod }} | |
customParameters: -logFile logFile.log -quit -batchmode | |
artifactsPath: ${{ matrix.buildPath }} | |
- name: Ensure build path exists | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
run: mkdir -p ${{ matrix.buildPath }} | |
- name: Upload artifact | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Build-${{ matrix.targetPlatform }} | |
path: ${{ matrix.buildPath }} | |
test: | |
name: Run ${{ matrix.targetPlatform }} UI tests 🧪 | |
needs: build | |
strategy: | |
matrix: | |
include: | |
- targetPlatform: StandaloneOSX | |
runs-on: [self-hosted, macOS] | |
test_script: pytest -xs test/test_mac.py::MacTest | |
- targetPlatform: StandaloneWindows64 | |
runs-on: [self-hosted, windows] | |
test_script: python -m pytest -xs test/test_windows.py::WindowsTest | |
# - targetPlatform: Android | |
# runs-on: [ self-hosted, macOS ] | |
# test_script: browserstack-sdk pytest -s ./test/test_android.py --browserstack.config "browserstack.android.yml" | |
concurrency: | |
group: test-${{ matrix.targetPlatform }} | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- uses: actions/checkout@v3 | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
with: | |
lfs: true | |
- name: Create temporary keychain | |
if: matrix.targetPlatform == 'StandaloneOSX' && (github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'StandaloneOSX') | |
run: | | |
security list-keychains | |
security delete-keychain temporary || true | |
security list-keychains | |
security create-keychain -p "" temporary | |
security default-keychain -s temporary | |
security unlock-keychain -p "" temporary | |
security set-keychain-settings -lut 600 temporary | |
- uses: actions/download-artifact@v4 | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
with: | |
name: Build-${{ matrix.targetPlatform }} | |
path: sample/Tests | |
- name: Make macOS artifact executable | |
if: matrix.targetPlatform == 'StandaloneOSX' && (github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'StandaloneOSX') | |
run: chmod +x sample/Tests/SampleApp.app/Contents/MacOS/* | |
- uses: actions/setup-python@v4 | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
with: | |
python-version: "3.13" | |
- name: Install dependencies (Windows) | |
if: matrix.targetPlatform == 'StandaloneWindows64' && (github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'StandaloneWindows64') | |
run: pip install -r "sample/Tests/requirements-desktop.txt" | |
- name: Install dependencies (Mac) | |
if: matrix.targetPlatform == 'StandaloneOSX' && (github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'StandaloneOSX') | |
run: pip install -r "sample/Tests/requirements-desktop.txt" | |
- name: Run UI tests | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == matrix.targetPlatform | |
env: | |
UNITY_APP_PATH: SampleApp.app | |
UNITY_APP_NAME: SampleApp | |
MAILSLURP_API_KEY: ${{ secrets.MAILSLURP_API_KEY }} | |
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }} | |
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
working-directory: sample/Tests | |
run: ${{ matrix.test_script }} | |
- name: Remove temporary keychain | |
if: matrix.targetPlatform == 'StandaloneOSX' && (github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'StandaloneOSX') | |
run: | | |
security list-keychains | |
security delete-keychain temporary | |
security default-keychain -s ~/Library/Keychains/login.keychain-db | |
security list-keychains -d user -s ~/Library/Keychains/login.keychain-db | |
security list-keychains | |
build-ios: #test-ios: | |
name: Run iOS build #UI tests 🧪 | |
needs: | |
- build | |
- test | |
runs-on: [ self-hosted, macOS ] | |
if: github.event_name != 'workflow_dispatch' || github.event.inputs.targetPlatform == 'All' || github.event.inputs.targetPlatform == 'iOS' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- name: Build iOS app | |
working-directory: sample | |
run: ./build_ios.sh | |
# - uses: actions/setup-python@v4 | |
# with: | |
# python-version: "3.13" | |
# - name: Install dependencies | |
# run: pip install -r "sample/Tests/requirements-mobile.txt" | |
# - name: Run UI tests | |
# env: | |
# MAILSLURP_API_KEY: ${{ secrets.MAILSLURP_API_KEY }} | |
# BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }} | |
# BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
# working-directory: sample/Tests/test/ios | |
# run: browserstack-sdk pytest -xs ./test_ios.py --browserstack.config "browserstack.ios.yml" | |