diff --git a/.github/workflows/main_win.yaml b/.github/workflows/main_win.yaml index 32db4b24c5b5..1d04e1a3cb6c 100644 --- a/.github/workflows/main_win.yaml +++ b/.github/workflows/main_win.yaml @@ -115,6 +115,11 @@ jobs: uses: ./.github/actions/docker_win with: service: ${{ needs.initialize.outputs.docker_service }} + - name: Build runner docker image + id: build-runner-docker-image + uses: ./.github/actions/docker_win + with: + service: ${{ needs.initialize.outputs.docker_runner_service }} # Runs builds. build: needs: [initialize] diff --git a/docker-compose-windows.yml b/docker-compose-windows.yml index e577ee47dd68..c60c37255b09 100644 --- a/docker-compose-windows.yml +++ b/docker-compose-windows.yml @@ -98,3 +98,14 @@ services: depends_on: - cobalt-build-win32-base image: cobalt-build-win-win32 + + runner-win-win32: + <<: *common-definitions + build: + context: ./docker/windows/runner + dockerfile: ./Dockerfile + args: + - RUNNER_VERSION=2.294.0 + depends_on: + - cobalt-build-win32-base + image: cobalt-runner-win-win32 diff --git a/docker/windows/runner/Dockerfile b/docker/windows/runner/Dockerfile new file mode 100644 index 000000000000..a49481150bbd --- /dev/null +++ b/docker/windows/runner/Dockerfile @@ -0,0 +1,34 @@ +# Copyright 2022 The Cobalt Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM cobalt-build-win32-base + +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';$ProgressPreference='silentlyContinue';"] + +ARG RUNNER_VERSION + +RUN Invoke-WebRequest -Uri 'https://aka.ms/install-powershell.ps1' -OutFile install-powershell.ps1; \ + powershell -ExecutionPolicy Unrestricted -File ./install-powershell.ps1 -AddToPath + +RUN Invoke-WebRequest -Uri https://github.com/actions/runner/releases/download/v$env:RUNNER_VERSION/actions-runner-win-x64-$env:RUNNER_VERSION.zip -OutFile runner.zip; \ + Expand-Archive -Path C:/runner.zip -DestinationPath C:/actions-runner; \ + Remove-Item -Path C:\runner.zip; \ + setx /M PATH $(${Env:PATH} + \";${Env:ProgramFiles}\Git\bin\") + +# Required for packaging artifacts. +RUN choco install -f -y 7zip --version=19.0 + +ENV TMP "C:\Users\ContainerAdministrator\AppData\Local\Temp2" + +ADD runner.ps1 C:/runner.ps1 +CMD ["pwsh", "-ExecutionPolicy", "Unrestricted", "-File", ".\\runner.ps1"] diff --git a/docker/windows/runner/runner.ps1 b/docker/windows/runner/runner.ps1 new file mode 100644 index 000000000000..9e96a5e58174 --- /dev/null +++ b/docker/windows/runner/runner.ps1 @@ -0,0 +1,2 @@ +.\actions-runner\config.cmd --unattended --replace --url https://github.com/${env:RUNNER_REPO} --token $env:RUNNER_TOKEN --name $env:RUNNER_NAME --work $env:RUNNER_WORKDIR --labels $env:RUNNER_LABELS; +.\actions-runner\run.cmd;