no message #342
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: | ||
tests: | ||
name: 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-caching' | ||
- 'cloud-runner-environment' | ||
- 'cloud-runner-image' | ||
- '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 | ||
- 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 }} | ||
k8sTests: | ||
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 }} | ||
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 |