name: Cloud Runner CI Pipeline on: push: { branches: [cloud-runner-develop, cloud-runner-preview] } 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_BASE_STACK_NAME: game-ci-github-pipelines CLOUD_RUNNER_BRANCH: ${{ github.ref }} CLOUD_RUNNER_DEBUG: true CLOUD_RUNNER_DEBUG_TREE: true DEBUG: true UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} PROJECT_PATH: test-project UNITY_VERSION: 2019.3.15f1 USE_IL2CPP: false jobs: integrationTests: name: Integration Tests if: github.event.event_type != 'pull_request_target' runs-on: ubuntu-latest strategy: fail-fast: false matrix: cloudRunnerCluster: - aws - local-docker - k8s steps: - name: Checkout (default) uses: actions/checkout@v2 with: lfs: true - uses: google-github-actions/setup-gcloud@v0 with: version: '288.0.0' service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }} service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} - name: Get GKE cluster credentials run: gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT - 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 cli --help - run: yarn run test "cloud-runner-run-twice-retaining" --detectOpenHandles --forceExit --runInBand if: matrix.CloudRunnerCluster == 'aws' || matrix.CloudRunnerCluster == 'k8s' timeout-minutes: 180 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} PROJECT_PATH: test-project GIT_PRIVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }} TARGET_PLATFORM: StandaloneWindows64 cloudRunnerTests: true versioning: None CLOUD_RUNNER_CLUSTER: ${{ matrix.cloudRunnerCluster }} - run: yarn run test-i --detectOpenHandles --forceExit --runInBand if: matrix.CloudRunnerCluster == 'local-docker' timeout-minutes: 180 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} PROJECT_PATH: test-project GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TARGET_PLATFORM: StandaloneWindows64 cloudRunnerTests: true versioning: None CLOUD_RUNNER_CLUSTER: ${{ matrix.cloudRunnerCluster }} buildTargetTests: name: Build Tests - Targets if: github.event.event_type != 'pull_request_target' runs-on: ubuntu-latest strategy: fail-fast: false matrix: cloudRunnerCluster: #- 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@v2 with: lfs: true - uses: google-github-actions/setup-gcloud@v0 with: version: '288.0.0' service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }} service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} - name: Get GKE cluster credentials run: gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT - 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 - uses: ./ id: unity-build timeout-minutes: 90 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} with: cloudRunnerTests: true versioning: None projectPath: test-project gitPrivateToken: ${{ secrets.GITHUB_TOKEN }} targetPlatform: ${{ matrix.targetPlatform }} cloudRunnerCluster: ${{ matrix.cloudRunnerCluster }} customStepFiles: aws-s3-upload-build,aws-s3-pull-cache,aws-s3-upload-cache - run: | aws s3 cp s3://game-ci-test-storage/cloud-runner-cache/${{ steps.unity-build.outputs.CACHE_KEY }}/build/build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 ls - run: yarn run cli -m list-resources env: cloudRunnerTests: true CLOUD_RUNNER_CLUSTER: ${{ matrix.cloudRunnerCluster }} - uses: actions/upload-artifact@v2 with: name: ${{ matrix.cloudRunnerCluster }} Build (${{ matrix.targetPlatform }}) path: build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 retention-days: 14 buildTests: name: Build Tests - Providers if: github.event.event_type != 'pull_request_target' runs-on: ubuntu-latest strategy: fail-fast: false matrix: cloudRunnerCluster: - 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 steps: - name: Checkout (default) uses: actions/checkout@v2 with: lfs: true - uses: google-github-actions/setup-gcloud@v0 with: version: '288.0.0' service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }} service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} - name: Get GKE cluster credentials run: gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT - 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 - uses: ./ id: unity-build timeout-minutes: 90 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} with: cloudRunnerTests: true versioning: None projectPath: test-project gitPrivateToken: ${{ secrets.GITHUB_TOKEN }} targetPlatform: ${{ matrix.targetPlatform }} cloudRunnerCluster: ${{ matrix.cloudRunnerCluster }} customStepFiles: aws-s3-upload-build,aws-s3-pull-cache,aws-s3-upload-cache - run: | aws s3 cp s3://game-ci-test-storage/cloud-runner-cache/${{ steps.unity-build.outputs.CACHE_KEY }}/build/build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 ls - run: yarn run cli -m list-resources if: always() env: cloudRunnerTests: true CLOUD_RUNNER_CLUSTER: ${{ matrix.cloudRunnerCluster }} - uses: actions/upload-artifact@v2 with: name: ${{ matrix.cloudRunnerCluster }} Build (${{ matrix.targetPlatform }}) path: build-${{ steps.unity-build.outputs.BUILD_GUID }}.tar.lz4 retention-days: 14