diff --git a/.github/workflows/cloud-runner-aws-integration-tests.yml b/.github/workflows/cloud-runner-aws-integration-tests.yml new file mode 100644 index 00000000..f77f8581 --- /dev/null +++ b/.github/workflows/cloud-runner-aws-integration-tests.yml @@ -0,0 +1,69 @@ +name: Cloud Runner - AWS Integration Tests + +on: + push: { branches: [main, aws, remote-builder/unified-providers] } + +env: + AWS_REGION: 'eu-west-1' + +jobs: + buildForAllPlatforms: + name: AWS Fargate Integration Tests + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + projectPath: + - test-project + unityVersion: + # - 2019.2.11f1 + - 2019.3.15f1 + targetPlatform: + #- StandaloneOSX # Build a macOS standalone (Intel 64-bit). + #- StandaloneWindows64 # Build a Windows 64-bit standalone. + - StandaloneLinux64 # Build a Linux 64-bit standalone. + #- iOS # Build an iOS player. + #- Android # Build an Android .apk. + #- WebGL # WebGL. + # - StandaloneWindows # Build a Windows standalone. + # - WSAPlayer # Build an Windows Store Apps player. + # - PS4 # Build a PS4 Standalone. + # - XboxOne # Build a Xbox One Standalone. + # - tvOS # Build to Apple's tvOS platform. + # - Switch # Build a Nintendo Switch player + # steps + steps: + - name: Checkout (default) + uses: actions/checkout@v2 + if: github.event.event_type != 'pull_request_target' + with: + lfs: true + - 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 test -- src/model/cloud-runner/cloud-runner.test.ts + id: aws-fargate-unity-integration-tests + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: eu-west-2 + CloudRunnerBranch: remote-builder/unified-providers + DEBUG: true + cloudRunnerCluster: aws + projectPath: ${{ matrix.projectPath }} + unityVersion: ${{ matrix.unityVersion }} + targetPlatform: ${{ matrix.targetPlatform }} + githubToken: ${{ secrets.GITHUB_TOKEN }} + awsBaseStackName: game-ci-stack + postBuildSteps: >- + - name: 'step 1' + image: 'alpine' + commands: ['printenv'] + secrets: + - name: 'testCustomSecret' + value: 'VALUEXXX' diff --git a/src/model/cloud-runner/cloud-runner-services/cloud-runner-provider-interface.ts b/src/model/cloud-runner/cloud-runner-services/cloud-runner-provider-interface.ts index 90f829c6..4828578f 100644 --- a/src/model/cloud-runner/cloud-runner-services/cloud-runner-provider-interface.ts +++ b/src/model/cloud-runner/cloud-runner-services/cloud-runner-provider-interface.ts @@ -1,4 +1,4 @@ -import BuildParameters from '../build-parameters'; +import BuildParameters from '../../build-parameters'; import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable'; import CloudRunnerSecret from './cloud-runner-secret'; diff --git a/src/model/cloud-runner/cloud-runner.ts b/src/model/cloud-runner/cloud-runner.ts index eb2f6788..514fc965 100644 --- a/src/model/cloud-runner/cloud-runner.ts +++ b/src/model/cloud-runner/cloud-runner.ts @@ -1,14 +1,14 @@ import AWSBuildPlatform from './aws/aws-build-platform'; import * as core from '@actions/core'; import { BuildParameters } from '..'; -import CloudRunnerNamespace from './cloud-runner-namespace'; -import CloudRunnerSecret from './cloud-runner-secret'; -import { CloudRunnerProviderInterface } from './cloud-runner-provider-interface'; +import CloudRunnerNamespace from './cloud-runner-services/cloud-runner-namespace'; +import CloudRunnerSecret from './cloud-runner-services/cloud-runner-secret'; +import { CloudRunnerProviderInterface } from './cloud-runner-services/cloud-runner-provider-interface'; import Kubernetes from './k8s/kubernetes-build-platform'; -import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable'; +import CloudRunnerEnvironmentVariable from './cloud-runner-services/cloud-runner-environment-variable'; import ImageEnvironmentFactory from '../image-environment-factory'; import YAML from 'yaml'; -import CloudRunnerLogger from './cloud-runner-logger'; +import CloudRunnerLogger from './cloud-runner-services/cloud-runner-logger'; const repositoryFolder = 'repo'; const buildVolumeFolder = 'data'; const cacheFolder = 'cache'; diff --git a/src/model/cloud-runner/k8s/kubernetes-job-spec-factory.ts b/src/model/cloud-runner/k8s/kubernetes-job-spec-factory.ts index e438ae5c..a8bfc727 100644 --- a/src/model/cloud-runner/k8s/kubernetes-job-spec-factory.ts +++ b/src/model/cloud-runner/k8s/kubernetes-job-spec-factory.ts @@ -1,5 +1,5 @@ import BuildParameters from '../../build-parameters'; -import CloudRunnerEnvironmentVariable from '../cloud-runner-environment-variable'; +import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable'; class KubernetesJobSpecFactory { static getJobSpec( diff --git a/src/model/cloud-runner/k8s/kubernetes-logging.ts b/src/model/cloud-runner/k8s/kubernetes-logging.ts index f433e257..7b97203d 100644 --- a/src/model/cloud-runner/k8s/kubernetes-logging.ts +++ b/src/model/cloud-runner/k8s/kubernetes-logging.ts @@ -1,6 +1,6 @@ import { CoreV1Api, KubeConfig, Log } from '@kubernetes/client-node'; import { Writable } from 'stream'; -import CloudRunnerLogger from '../cloud-runner-logger'; +import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger'; class KubernetesLogging { static async streamLogs(