Support multiple GitHub SSH deploy keys (#568) #219
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_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_DEFAULT_REGION: eu-west-2 | |
AWS_STACK_NAME: game-ci-team-pipelines | |
CLOUD_RUNNER_BRANCH: ${{ github.ref }} | |
DEBUG: true | |
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
PROJECT_PATH: test-project | |
UNITY_VERSION: 2019.3.15f1 | |
USE_IL2CPP: false | |
USE_GKE_GCLOUD_AUTH_PLUGIN: true | |
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
smokeTests: | |
name: Smoke 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-caching' | |
# - 'cloud-runner-end2end-caching' | |
# - 'cloud-runner-end2end-retaining' | |
- 'cloud-runner-environment' | |
- 'cloud-runner-hooks' | |
- 'cloud-runner-local-persistence' | |
- 'cloud-runner-locking-core' | |
- 'cloud-runner-locking-get-locked' | |
providerStrategy: | |
#- aws | |
- local-docker | |
#- k8s | |
steps: | |
- name: Checkout (default) | |
uses: actions/checkout@v3 | |
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 | |
- uses: google-github-actions/auth@v1 | |
if: matrix.providerStrategy == 'k8s' | |
with: | |
credentials_json: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} | |
- name: 'Set up Cloud SDK' | |
if: matrix.providerStrategy == 'k8s' | |
uses: 'google-github-actions/setup-gcloud@v1.1.0' | |
- name: Get GKE cluster credentials | |
if: matrix.providerStrategy == 'k8s' | |
run: | | |
export USE_GKE_GCLOUD_AUTH_PLUGIN=True | |
gcloud components install gke-gcloud-auth-plugin | |
gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT | |
- run: yarn | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 35 | |
env: | |
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
CLOUD_RUNNER_CLUSTER: ${{ matrix.providerStrategy }} | |
tests: | |
# needs: | |
# - smokeTests | |
# - buildTargetTests | |
name: Integration Tests | |
if: github.event.event_type != 'pull_request_target' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
providerStrategy: | |
- aws | |
- local-docker | |
- k8s | |
test: | |
- 'cloud-runner-async-workflow' | |
#- 'cloud-runner-caching' | |
- 'cloud-runner-end2end-locking' | |
- 'cloud-runner-end2end-caching' | |
- 'cloud-runner-end2end-retaining' | |
- 'cloud-runner-environment' | |
#- 'cloud-runner-hooks' | |
- 'cloud-runner-s3-steps' | |
#- 'cloud-runner-local-persistence' | |
#- 'cloud-runner-locking-core' | |
#- 'cloud-runner-locking-get-locked' | |
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 | |
- uses: google-github-actions/auth@v1 | |
if: matrix.providerStrategy == 'k8s' | |
with: | |
credentials_json: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} | |
- name: 'Set up Cloud SDK' | |
if: matrix.providerStrategy == 'k8s' | |
uses: 'google-github-actions/setup-gcloud@v1.1.0' | |
- name: Get GKE cluster credentials | |
if: matrix.providerStrategy == 'k8s' | |
run: | | |
export USE_GKE_GCLOUD_AUTH_PLUGIN=True | |
gcloud components install gke-gcloud-auth-plugin | |
gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT | |
- run: yarn | |
- run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand | |
timeout-minutes: 60 | |
env: | |
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
PROJECT_PATH: test-project | |
TARGET_PLATFORM: StandaloneWindows64 | |
cloudRunnerTests: true | |
versioning: None | |
PROVIDER_STRATEGY: ${{ matrix.providerStrategy }} | |
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@v3 | |
with: | |
lfs: false | |
- run: yarn | |
- uses: ./ | |
id: unity-build | |
timeout-minutes: 30 | |
env: | |
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
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 |