diff --git a/.github/workflows/cloud-runner-ci-pipeline.yml b/.github/workflows/cloud-runner-ci-pipeline.yml index 440b80c2..7b238ac6 100644 --- a/.github/workflows/cloud-runner-ci-pipeline.yml +++ b/.github/workflows/cloud-runner-ci-pipeline.yml @@ -35,20 +35,6 @@ jobs: 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 @@ -61,7 +47,7 @@ jobs: 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 + - run: yarn run test --detectOpenHandles --forceExit --runInBand timeout-minutes: 60 env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} @@ -81,17 +67,6 @@ jobs: 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 @@ -102,7 +77,7 @@ jobs: uses: debianmaster/actions-k3s@v1.0.5 with: version: 'latest' - - run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand + - run: yarn run test --detectOpenHandles --forceExit --runInBand timeout-minutes: 60 env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} @@ -118,48 +93,38 @@ jobs: 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 }} - # + awsTests: + name: AWS Tests + if: github.event.event_type != 'pull_request_target' + runs-on: ubuntu-latest + 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 --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 diff --git a/dist/index.js.map b/dist/index.js.map index f243b1f6..0ac72d2d 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/game-ci/command-hooks/rclone-pre-build.yaml b/game-ci/command-hooks/rclone-pre-build.yaml new file mode 100644 index 00000000..392d0b3f --- /dev/null +++ b/game-ci/command-hooks/rclone-pre-build.yaml @@ -0,0 +1,3 @@ +hook: before +commands: | + curl https://rclone.org/install.sh | bash diff --git a/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts b/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts index cb849aaa..4ffe101a 100644 --- a/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts +++ b/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts @@ -48,7 +48,7 @@ commands: echo "test"`; const getCustomStepsFromFiles = ContainerHookService.GetContainerHooksFromFiles(`before`); CloudRunnerLogger.log(JSON.stringify(getCustomStepsFromFiles, undefined, 4)); }); - if (CloudRunnerOptions.cloudRunnerDebug && CloudRunnerOptions.providerStrategy !== `k8s`) { + if (CloudRunnerOptions.cloudRunnerDebug) { it('Should be 1 before and 1 after hook', async () => { const overrides = { versioning: 'None', diff --git a/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts b/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts new file mode 100644 index 00000000..8349ddff --- /dev/null +++ b/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts @@ -0,0 +1,42 @@ +import CloudRunner from '../../cloud-runner'; +import { BuildParameters, ImageTag } from '../../..'; +import UnityVersioning from '../../../unity-versioning'; +import { Cli } from '../../../cli/cli'; +import CloudRunnerLogger from '../../services/core/cloud-runner-logger'; +import { v4 as uuidv4 } from 'uuid'; +import CloudRunnerOptions from '../../options/cloud-runner-options'; +import setups from './../cloud-runner-suite.test'; + +async function CreateParameters(overrides: any) { + if (overrides) { + Cli.options = overrides; + } + + return await BuildParameters.create(); +} + +describe('Cloud Runner RClone Hooks And Steps', () => { + it('Responds', () => {}); + setups(); + if (CloudRunnerOptions.cloudRunnerDebug) { + it('Run build with rclone steps', async () => { + const overrides = { + versioning: 'None', + projectPath: 'test-project', + unityVersion: UnityVersioning.determineUnityVersion('test-project', UnityVersioning.read('test-project')), + targetPlatform: 'StandaloneLinux64', + cacheKey: `test-case-${uuidv4()}`, + commandHookFiles: `rclone-pre-build`, + customJob: ` + - name: 'step 1' + image: 'ubuntu' + commands: 'echo "my test"' + `, + }; + const buildParameter2 = await CreateParameters(overrides); + const baseImage2 = new ImageTag(buildParameter2); + await CloudRunner.run(buildParameter2, baseImage2.toString()); + CloudRunnerLogger.log(`rclone run succeeded`); + }, 1_000_000_000); + } +});