Cloud runner develop - Stabilizes kubernetes provider (#531) #331
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 }} | |
- run: | | |
docker volume rm $(docker volume ls -qf dangling=true) | |
docker rmi $(docker images -q -f dangling=true) | |
docker rm $(docker ps -aqf status=exited) | |
docker rmi $(docker images -q) | |
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 | |
- run: | | |
docker volume rm $(docker volume ls -qf dangling=true) | |
docker rmi $(docker images -q -f dangling=true) | |
docker rm $(docker ps -aqf status=exited) | |
docker rmi $(docker images -q) |