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: Cloud Runner CI Pipeline | |
on: | |
push: { branches: [cloud-runner-develop, cloud-runner-preview, main] } | |
workflow_dispatch: | |
permissions: | |
checks: write | |
contents: read | |
actions: write | |
env: | |
GKE_ZONE: 'us-central1' | |
GKE_REGION: 'us-central1' | |
GKE_PROJECT: 'unitykubernetesbuilder' | |
GKE_CLUSTER: 'game-ci-github-pipelines' | |
GCP_LOGGING: true | |
GCP_PROJECT: unitykubernetesbuilder | |
GCP_LOG_FILE: ${{ github.workspace }}/cloud-runner-logs.txt | |
AWS_REGION: eu-west-2 | |
AWS_DEFAULT_REGION: eu-west-2 | |
AWS_STACK_NAME: game-ci-team-pipelines | |
CLOUD_RUNNER_BRANCH: ${{ github.ref }} | |
DEBUG: true | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
PROJECT_PATH: test-project | |
UNITY_VERSION: 2019.3.15f1 | |
USE_IL2CPP: false | |
USE_GKE_GCLOUD_AUTH_PLUGIN: true | |
jobs: | |
smokeTests: | |
name: Smoke Tests | |
if: github.event.event_type != 'pull_request_target' | |
runs-on: ubuntu-latest | |
env: | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
strategy: | |
fail-fast: true | |
matrix: | |
test: | |
- 'cloud-runner-caching' | |
- 'cloud-runner-environment' | |
- 'cloud-runner-hooks' | |
- 'cloud-runner-local-persistence' | |
- 'cloud-runner-locking-core' | |
- 'cloud-runner-locking-get-locked' | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v4 | |
with: | |
lfs: false | |
- run: yarn | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 35 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
CLOUD_RUNNER_CLUSTER: local-docker | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
localTests: | |
name: Local Tests | |
if: github.event.event_type != 'pull_request_target' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test: | |
- 'cloud-runner-end2end-locking' | |
- 'cloud-runner-end2end-caching' | |
- 'cloud-runner-end2end-retaining' | |
- 'cloud-runner-environment' | |
- 'cloud-runner-remote-client' | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v4 | |
with: | |
lfs: false | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: eu-west-2 | |
- run: yarn | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 60 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
KUBE_STORAGE_CLASS: local-path | |
PROVIDER_STRATEGY: local-docker | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: | |
${{ secrets.GITHUB_TOKEN }} | |
# needs: | |
# - smokeTests | |
# - buildTargetTests | |
k8sTests: | |
# needs: | |
# - smokeTests | |
# - buildTargetTests | |
name: K8s Tests | |
if: github.event.event_type != 'pull_request_target' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test: | |
- 'cloud-runner-async-workflow' | |
- 'cloud-runner-end2end-locking' | |
- 'cloud-runner-end2end-caching' | |
- 'cloud-runner-end2end-retaining' | |
- 'cloud-runner-kubernetes' | |
- 'cloud-runner-environment' | |
- 'cloud-runner-github-checks' | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v2 | |
with: | |
lfs: false | |
- run: yarn | |
- name: actions-k3s | |
uses: debianmaster/actions-k3s@v1.0.5 | |
with: | |
version: 'latest' | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 60 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
KUBE_STORAGE_CLASS: local-path | |
PROVIDER_STRATEGY: k8s | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: | |
${{ secrets.GITHUB_TOKEN }} | |
# needs: | |
# - smokeTests | |
# - buildTargetTests | |
awsTests: | |
name: AWS Tests | |
if: github.event.event_type != 'pull_request_target' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test: | |
- 'cloud-runner-end2end-locking' | |
- 'cloud-runner-end2end-caching' | |
- 'cloud-runner-end2end-retaining' | |
- 'cloud-runner-environment' | |
- 'cloud-runner-s3-steps' | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v2 | |
with: | |
lfs: false | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: eu-west-2 | |
- run: yarn | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 60 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
KUBE_STORAGE_CLASS: local-path | |
PROVIDER_STRATEGY: aws | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
buildTargetTests: | |
name: Local Build Target Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
providerStrategy: | |
#- aws | |
- local-docker | |
#- k8s | |
targetPlatform: | |
- StandaloneOSX # Build a macOS standalone (Intel 64-bit). | |
- StandaloneWindows64 # Build a Windows 64-bit standalone. | |
- StandaloneLinux64 # Build a Linux 64-bit standalone. | |
- WebGL # WebGL. | |
- iOS # Build an iOS player. | |
- Android # Build an Android .apk. | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v4 | |
with: | |
lfs: false | |
- run: yarn | |
- uses: ./ | |
id: unity-build | |
timeout-minutes: 30 | |
env: | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
cloudRunnerTests: true | |
versioning: None | |
targetPlatform: ${{ matrix.targetPlatform }} | |
providerStrategy: ${{ matrix.providerStrategy }} | |
- run: | | |
cp ./cloud-runner-cache/cache/${{ steps.unity-build.outputs.CACHE_KEY }}/build/${{ steps.unity-build.outputs.BUILD_ARTIFACT }} ${{ steps.unity-build.outputs.BUILD_ARTIFACT }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.providerStrategy }} Build (${{ matrix.targetPlatform }}) | |
path: ${{ steps.unity-build.outputs.BUILD_ARTIFACT }} | |
retention-days: 14 |