From 0d8d49ed27427e9adf583114861b1f85f6c71949 Mon Sep 17 00:00:00 2001 From: Andrew Stoltz Date: Wed, 20 May 2026 11:44:52 -0500 Subject: [PATCH] feat(github-runner): bake Ruby 3.3 into Linux self-hosted runner image (Q-MR-81) --- apps/github-runner/.gitattributes | 2 + apps/github-runner/Dockerfile | 44 ++ apps/github-runner/README.md | 45 ++ apps/github-runner/github-runner.yaml | 457 ++++++++++++------- apps/github-runner/install-ruby-toolcache.sh | 19 + 5 files changed, 397 insertions(+), 170 deletions(-) create mode 100644 apps/github-runner/.gitattributes create mode 100644 apps/github-runner/Dockerfile create mode 100644 apps/github-runner/install-ruby-toolcache.sh diff --git a/apps/github-runner/.gitattributes b/apps/github-runner/.gitattributes new file mode 100644 index 0000000..f3f6bec --- /dev/null +++ b/apps/github-runner/.gitattributes @@ -0,0 +1,2 @@ +*.sh text eol=lf +Dockerfile text eol=lf diff --git a/apps/github-runner/Dockerfile b/apps/github-runner/Dockerfile new file mode 100644 index 0000000..80ba7c5 --- /dev/null +++ b/apps/github-runner/Dockerfile @@ -0,0 +1,44 @@ +FROM myoung34/github-runner:latest + +ARG RUBY_VERSION=3.3.11 +ARG RUBY_MINOR=3.3 +ARG RUBY_BUILD_VERSION=v20260326 +ARG RUNNER_UID=1001 +ARG RUNNER_GID=1001 + +ENV RUNNER_TOOL_CACHE=/home/runner/_tool +ENV RUNNER_RUBY_TOOLCACHE=/opt/runner-toolcache +ENV PATH="/home/runner/_tool/Ruby/${RUBY_MINOR}/x64/bin:/opt/runner-toolcache/Ruby/${RUBY_MINOR}/x64/bin:${PATH}" + +USER root + +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + autoconf \ + bison \ + build-essential \ + ca-certificates \ + curl \ + libdb-dev \ + libffi-dev \ + libgdbm-dev \ + libgmp-dev \ + libncurses-dev \ + libreadline-dev \ + libssl-dev \ + libyaml-dev \ + patch \ + pkg-config \ + uuid-dev \ + zlib1g-dev \ + && curl -fsSL "https://github.com/rbenv/ruby-build/archive/refs/tags/${RUBY_BUILD_VERSION}.tar.gz" -o /tmp/ruby-build.tar.gz \ + && mkdir -p /tmp/ruby-build \ + && tar -xzf /tmp/ruby-build.tar.gz --strip-components=1 -C /tmp/ruby-build \ + && /tmp/ruby-build/install.sh \ + && rm -rf /tmp/ruby-build /tmp/ruby-build.tar.gz /var/lib/apt/lists/* + +COPY install-ruby-toolcache.sh /usr/local/bin/install-ruby-toolcache.sh + +RUN chmod +x /usr/local/bin/install-ruby-toolcache.sh \ + && RUBY_VERSION="${RUBY_VERSION}" RUBY_MINOR="${RUBY_MINOR}" TOOLCACHE_ROOT="${RUNNER_RUBY_TOOLCACHE}" RUNNER_UID="${RUNNER_UID}" RUNNER_GID="${RUNNER_GID}" /usr/local/bin/install-ruby-toolcache.sh \ + && ruby -v diff --git a/apps/github-runner/README.md b/apps/github-runner/README.md index a7e3552..2b6b370 100644 --- a/apps/github-runner/README.md +++ b/apps/github-runner/README.md @@ -7,12 +7,17 @@ Deployments with `kubectl`; update this manifest and let ArgoCD reconcile. All repo-scoped Linux runners use: +- `localhost/fc-github-runner:v20260520-ruby3.3.11`, derived from + `myoung34/github-runner:latest` - `ACCESS_TOKEN` from the `github-runner-token` Secret - `RUN_AS_ROOT=false` - `EPHEMERAL=true` - `LABELS=self-hosted,linux,fc-build-linux` - writable non-root paths under `/home/runner` for .NET, NuGet, XDG cache, and Actions tool cache +- Ruby 3.3.11 seeded into `/home/runner/_tool/Ruby/3.3/x64` from the baked + `/opt/runner-toolcache` copy so `ruby/setup-ruby@v1` can discover it on + self-hosted `ubuntu-20.04-x64` runners `github-runner` for `FlowerCore.Common` is single-replica because it retains the original Longhorn ReadWriteOnce NuGet PVC. Every other repo-scoped runner uses @@ -28,6 +33,34 @@ Sprint 32 final long-tail wave adds 16 two-replica Deployments: `FlowerCore.Provisioning`, `FlowerCore.Redis`, `FlowerCore.MessageBoard`, and `FlowerCore.MenuBoard`. +## Image Build + +Ruby is baked with a pinned `ruby-build` release and Ruby patch version. The pod +still mounts an `emptyDir` over `/home/runner`, so the `setup-runner-home` init +container copies the baked toolcache from `/opt/runner-toolcache/Ruby` into +`/home/runner/_tool/Ruby` before the runner container starts. + +```bash +cd apps/github-runner +podman build -t localhost/fc-github-runner:v20260520-ruby3.3.11 . +podman run --rm localhost/fc-github-runner:v20260520-ruby3.3.11 ruby -v +podman run --rm localhost/fc-github-runner:v20260520-ruby3.3.11 \ + test -f /opt/runner-toolcache/Ruby/3.3/x64.complete +podman save localhost/fc-github-runner:v20260520-ruby3.3.11 \ + -o fc-github-runner-v20260520-ruby3.3.11.tar +``` + +Import the saved image on every schedulable RKE2 node before ArgoCD rolls the +Deployments: + +```bash +for node in rke2-server rke2-agent1 rke2-agent2; do + scp fc-github-runner-v20260520-ruby3.3.11.tar "$node:/tmp/" + ssh "$node" 'sudo ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images rm localhost/fc-github-runner:v20260520-ruby3.3.11 || true' + ssh "$node" 'sudo ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images import /tmp/fc-github-runner-v20260520-ruby3.3.11.tar' +done +``` + ## Post-Merge Proof After the PR is merged and ArgoCD syncs, verify the runner fleet: @@ -36,6 +69,14 @@ After the PR is merged and ArgoCD syncs, verify the runner fleet: kubectl -n github-runner get deploy,pods,pvc ``` +Verify the Ruby toolcache in a fresh pod: + +```bash +kubectl -n github-runner exec deploy/github-runner-puppet -c runner -- ruby -v +kubectl -n github-runner exec deploy/github-runner-puppet -c runner -- sh -c \ + 'echo "$RUNNER_TOOL_CACHE" && test -f "$RUNNER_TOOL_CACHE/Ruby/3.3/x64.complete"' +``` + Verify GitHub registration for the repo-scoped runners: ```bash @@ -69,6 +110,10 @@ from GitHub Actions and verify it lands on an `rke2-linux-*` runner. - `actions/setup-dotnet` permission error at `/usr/share/dotnet`: check that `DOTNET_INSTALL_DIR=/home/runner/.dotnet` and related cache env vars are present on the runner pod. +- `ruby/setup-ruby@v1` says self-hosted runners must install Ruby in + `$RUNNER_TOOL_CACHE`: check that the init container copied + `/opt/runner-toolcache/Ruby` into `/home/runner/_tool/Ruby` and that + `/home/runner/_tool/Ruby/3.3/x64.complete` exists. - `404` during runner registration: the fine-grained PAT is valid but missing repository access for that repo. Add the repo to the PAT access list; the PAT value does not change. diff --git a/apps/github-runner/github-runner.yaml b/apps/github-runner/github-runner.yaml index 957391f..62307ab 100644 --- a/apps/github-runner/github-runner.yaml +++ b/apps/github-runner/github-runner.yaml @@ -22,11 +22,16 @@ # NUGET_PACKAGES, XDG_CACHE_HOME, and RUNNER_TOOL_CACHE are all pointed at # writable mounted paths under /home/runner so actions/setup-dotnet does not # attempt to install into /usr/share/dotnet. +# Ruby 3.3.11 is baked into localhost/fc-github-runner:v20260520-ruby3.3.11 +# under /opt/runner-toolcache; setup-runner-home copies it into +# /home/runner/_tool because the runner-home emptyDir masks image content +# under /home/runner at runtime. # # Credentials: # OnePasswordItem "GitHub PAT (Runner Registration)" syncs Secret -# github-runner-token with field "credential". myoung34/github-runner uses -# ACCESS_TOKEN to mint short-lived registration tokens on pod start. +# github-runner-token with field "credential". The custom image inherits +# myoung34/github-runner behavior and uses ACCESS_TOKEN to mint short-lived +# registration tokens on pod start. # # Security model: # - No ClusterRole / ClusterRoleBinding. The ServiceAccount has no K8s API @@ -152,15 +157,19 @@ spec: # honors the deeper mount. initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -169,8 +178,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: # GitHub org/repo targeting. # Set REPO_URL for a repo-scoped runner (cheaper, simpler). @@ -325,15 +334,19 @@ spec: # rather than re-applied per repo as flipped lanes land. initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -342,8 +355,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Shared.Pos" @@ -459,15 +472,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -476,8 +493,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Puppet" @@ -587,15 +604,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -604,8 +625,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Signage" @@ -715,15 +736,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -732,8 +757,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.DMS" @@ -843,15 +868,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -860,8 +889,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Telephony" @@ -971,15 +1000,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -988,8 +1021,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Print.Web" @@ -1099,15 +1132,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1116,8 +1153,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Chat" @@ -1227,15 +1264,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1244,8 +1285,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.MySQL" @@ -1355,15 +1396,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1372,8 +1417,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Kiosk.Linux" @@ -1485,15 +1530,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1502,8 +1551,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Marquee" @@ -1615,15 +1664,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1632,8 +1685,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.TtsReader" @@ -1745,15 +1798,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1762,8 +1819,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Knowledge" @@ -1874,15 +1931,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -1891,8 +1952,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.LlmBridge" @@ -2003,15 +2064,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2020,8 +2085,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Media" @@ -2132,15 +2197,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2149,8 +2218,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Presentations" @@ -2261,15 +2330,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2278,8 +2351,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.RemoteDesktop" @@ -2390,15 +2463,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2407,8 +2484,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.DNS" @@ -2519,15 +2596,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2536,8 +2617,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Distribution" @@ -2648,15 +2729,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2665,8 +2750,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Scoreboard" @@ -2777,15 +2862,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2794,8 +2883,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.SegmentDisplay" @@ -2906,15 +2995,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -2923,8 +3016,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Signage.Contracts" @@ -3035,15 +3128,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3052,8 +3149,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.SignalControl" @@ -3164,15 +3261,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3181,8 +3282,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Intranet.Web" @@ -3293,15 +3394,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3310,8 +3415,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Provisioning" @@ -3422,15 +3527,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3439,8 +3548,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.Redis" @@ -3551,15 +3660,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3568,8 +3681,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.MessageBoard" @@ -3680,15 +3793,19 @@ spec: fsGroup: 1001 initContainers: - name: setup-runner-home - image: busybox:1.36 + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never command: - sh - -c - | set -e - mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet - chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget - chmod -R 755 /home/runner/.dotnet /home/runner/.nuget + mkdir -p /home/runner/.dotnet /home/runner/.nuget/packages /home/runner/.nuget/NuGet /home/runner/.cache /home/runner/_tool + if [ -d /opt/runner-toolcache/Ruby ] && [ ! -d /home/runner/_tool/Ruby ]; then + cp -a /opt/runner-toolcache/Ruby /home/runner/_tool/ + fi + chown -R 1001:1001 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool + chmod -R 755 /home/runner/.dotnet /home/runner/.nuget /home/runner/.cache /home/runner/_tool securityContext: runAsUser: 0 runAsNonRoot: false @@ -3697,8 +3814,8 @@ spec: mountPath: /home/runner containers: - name: runner - image: myoung34/github-runner:latest - imagePullPolicy: Always + image: localhost/fc-github-runner:v20260520-ruby3.3.11 + imagePullPolicy: Never env: - name: REPO_URL value: "https://github.com/astoltz/FlowerCore.MenuBoard" diff --git a/apps/github-runner/install-ruby-toolcache.sh b/apps/github-runner/install-ruby-toolcache.sh new file mode 100644 index 0000000..544b25a --- /dev/null +++ b/apps/github-runner/install-ruby-toolcache.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +RUBY_VERSION="${RUBY_VERSION:-3.3.11}" +RUBY_MINOR="${RUBY_MINOR:-3.3}" +TOOLCACHE_ROOT="${TOOLCACHE_ROOT:-/opt/runner-toolcache}" +RUNNER_UID="${RUNNER_UID:-1001}" +RUNNER_GID="${RUNNER_GID:-1001}" +RUBY_PREFIX="${TOOLCACHE_ROOT}/Ruby/${RUBY_VERSION}/x64" + +mkdir -p "${TOOLCACHE_ROOT}/Ruby" +RUBY_CONFIGURE_OPTS="${RUBY_CONFIGURE_OPTS:---disable-install-doc --disable-yjit}" ruby-build "${RUBY_VERSION}" "${RUBY_PREFIX}" + +touch "${TOOLCACHE_ROOT}/Ruby/${RUBY_VERSION}/x64.complete" +ln -sfn "${RUBY_VERSION}" "${TOOLCACHE_ROOT}/Ruby/${RUBY_MINOR}" + +"${RUBY_PREFIX}/bin/ruby" -v +chown -R "${RUNNER_UID}:${RUNNER_GID}" "${TOOLCACHE_ROOT}" +chmod -R a+rX "${TOOLCACHE_ROOT}"