terraform-aws-github-runner
terraform-aws-github-runner copied to clipboard
chore: Bump ubuntu example to latest LTS, 22.04
Did you test the change, I expect it won't work and result in the same error as metioned in #2102 See also PR https://github.com/actions/runner/pull/1585
Did you test the change, I expect it won't work and result in the same error as metioned in #2102 See also PR actions/runner#1585
We have been running Ubuntu 22.04 LTS on our runners for about a month now successfully. I can share our config if you'd like.
Please share your config, since running ./bin/installdependencies.sh is failing for me.
Did you test the change, I expect it won't work and result in the same error as metioned in #2102 See also PR actions/runner#1585
We have been running Ubuntu 22.04 LTS on our runners for about a month now successfully. I can share our config if you'd like.
We don't have anything proprietary in this config, so I'll share with you.
module "ubuntu_runners" {
source = "philips-labs/github-runner/aws"
version = "1.2.0"
aws_region = data.aws_region.main.name
vpc_id = data.aws_vpc.main.id
subnet_ids = [data.aws_subnet.primary_az.id, data.aws_subnet.secondary_az.id, data.aws_subnet.tertiary_az.id]
runner_egress_rules = var.runner_egress_rules
prefix = "ubuntu-${data.aws_region.main.name}"
github_app = {
key_base64 = filebase64("./app-ubuntu.private-key.pem")
id = var.github_app_id_ubuntu
webhook_secret = var.webhook_secret
}
lambda_s3_bucket = var.regional_lambda_bucket
runners_lambda_s3_key = "lambda/github/runners.zip"
webhook_lambda_s3_key = "lambda/github/webhook.zip"
syncer_lambda_s3_key = "lambda/github/runner-binaries-syncer.zip"
enable_organization_runners = true
runner_extra_labels = "ubuntu"
# enable access to the runners via SSM
enable_ssm_on_runners = true
runner_run_as = "ubuntu"
userdata_template = "./templates/user-data-ubuntu.sh"
ami_owners = ["099720109477"] # Canonical's Amazon account ID
ami_filter = {
name = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]
}
block_device_mappings = [{
# Set the block device name for Ubuntu root device
device_name = "/dev/sda1"
delete_on_termination = true
volume_type = "gp3"
volume_size = 30
encrypted = true
iops = null
}]
runner_log_files = [
{
"log_group_name" : "syslog",
"prefix_log_group" : true,
"file_path" : "/var/log/syslog",
"log_stream_name" : "{instance_id}"
},
{
"log_group_name" : "user_data",
"prefix_log_group" : true,
"file_path" : "/var/log/user-data.log",
"log_stream_name" : "{instance_id}/user_data"
},
{
"log_group_name" : "runner",
"prefix_log_group" : true,
"file_path" : "/opt/actions-runner/_diag/Runner_**.log",
"log_stream_name" : "{instance_id}/runner"
}
]
# Uncomment to enable ephemeral runners
enable_ephemeral_runners = true
#enabled_userdata = false
# Have idle runners from 8 AM to 6 PM M-F in time zone US/Eastern
idle_config = [{
cron = "* * 8-18 * * 1-5"
timeZone = "America/New_York"
idleCount = 4
}]
scale_up_reserved_concurrent_executions = -1 # Allows unlimited scale up for demand
runners_maximum_count = 25
# All the types I selected here are targeting 2 CPU, 4 GB RAM for consistency.
instance_types = ["m5.large", "m5a.large", "c5.large", "c5a.large"]
instance_allocation_strategy = "capacity-optimized"
runner_architecture = "x64" # can also be "arm64", if used with graviton
role_permissions_boundary = var.permissions_boundary
}
Then for our userdata, we actually took the example and instead of using a rootless runner, we install it at the system level since our VMs are ephemeral.
Can you share the userdata template as well?
This is the userdata file that is getting passed in (I removed some commented out lines for conciseness):
#!/bin/bash -x
exec > >(tee /var/log/user-data.log | logger -t user-data -s 2>/dev/console) 2>&1
${pre_install}
# Install AWS CLI
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y \
awscli \
jq \
curl \
wget \
git \
uidmap \
build-essential \
unzip
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
sudo dpkg -i session-manager-plugin.deb
USER_NAME=runners
useradd -m -s /bin/bash $USER_NAME
USER_ID=$(id -ru $USER_NAME)
# Install Docker in the VM
curl -Ls https://get.docker.com/ | sudo bash
sudo systemctl enable --now docker
# install and configure cloudwatch logging agent
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
dpkg -i -E ./amazon-cloudwatch-agent.deb
amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:${ssm_key_cloudwatch_agent_config}
# configure systemd for running service in users accounts
cat >/etc/systemd/[email protected] <<-EOF
[Unit]
Description=User Manager for UID %i
After=user-runtime-dir@%i.service
Wants=user-runtime-dir@%i.service
[Service]
LimitNOFILE=infinity
LimitNPROC=infinity
User=%i
PAMName=systemd-user
Type=notify
[Install]
WantedBy=default.target
EOF
echo export XDG_RUNTIME_DIR=/run/user/$USER_ID >>/home/$USER_NAME/.profile
systemctl daemon-reload
systemctl enable [email protected]
systemctl start [email protected]
echo export PATH=/home/$USER_NAME/bin:$PATH >>/home/$USER_NAME/.profile
${install_runner}
cd /opt/actions-runner/
${post_install}
cd /opt/actions-runner
# Docker permissions
sudo usermod -aG docker ubuntu
sudo usermod -aG docker runners
sudo usermod -aG docker ssm-user
${start_runner}
Hmzz, user_data is not relevant. You are installing all your depencies in a pre-build AMI most likely. Do you run the github runner install dependency script?
Hmzz, user_data is not relevant. You are installing all your depencies in a pre-build AMI most likely. Do you run the github runner install dependency script?
We don't use pre-build AMIs, just grab the latest with the filter name = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]. We grab that at run time and add the packages then. I think the macros
${install_runner} and ${post_install}
which are interpolated by the module do the dependencies.
Let me see if I can grab the userdata off the instance and see what it actually ends up being.
Hmzz, user_data is not relevant. You are installing all your depencies in a pre-build AMI most likely. Do you run the github runner install dependency script?
This is from one of the instances running right now. I'm going to redact our S3 bucket info, etc. but I'll leave some old commented lines in. It's running the public AMI, 099720109477/ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20220604 and it's working.
#!/bin/bash -x
exec > >(tee /var/log/user-data.log | logger -t user-data -s 2>/dev/console) 2>&1
# Install AWS CLI
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y \
awscli \
jq \
curl \
wget \
git \
uidmap \
build-essential \
unzip
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
sudo dpkg -i session-manager-plugin.deb
USER_NAME=runners
useradd -m -s /bin/bash $USER_NAME
USER_ID=$(id -ru $USER_NAME)
# Install Docker in the VM
curl -Ls https://get.docker.com/ | sudo bash
sudo systemctl enable --now docker
# install and configure cloudwatch logging agent
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
dpkg -i -E ./amazon-cloudwatch-agent.deb
amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:ubuntu-us-east-1-cloudwatch_agent_config_runner
# configure systemd for running service in users accounts
cat >/etc/systemd/[email protected] <<-EOF
[Unit]
Description=User Manager for UID %i
After=user-runtime-dir@%i.service
Wants=user-runtime-dir@%i.service
[Service]
LimitNOFILE=infinity
LimitNPROC=infinity
User=%i
PAMName=systemd-user
Type=notify
[Install]
WantedBy=default.target
EOF
echo export XDG_RUNTIME_DIR=/run/user/$USER_ID >>/home/$USER_NAME/.profile
systemctl daemon-reload
systemctl enable [email protected]
systemctl start [email protected]
# curl -fsSL https://get.docker.com/rootless >>/opt/rootless.sh && chmod 755 /opt/rootless.sh
# su -l $USER_NAME -c /opt/rootless.sh
# echo export DOCKER_HOST=unix:///run/user/$USER_ID/docker.sock >>/home/$USER_NAME/.profile
echo export PATH=/home/$USER_NAME/bin:$PATH >>/home/$USER_NAME/.profile
# Run docker service by default
#loginctl enable-linger $USER_NAME
# su -l $USER_NAME -c "systemctl --user enable docker"
# shellcheck shell=bash
## install the runner
s3_location=s3://[redacted]/actions-runner-linux.tar.gz
architecture=x64
if [ -z "$RUNNER_TARBALL_URL" ] && [ -z "$s3_location" ]; then
echo "Neither RUNNER_TARBALL_URL or s3_location are set"
exit 1
fi
file_name="actions-runner.tar.gz"
echo "Setting up GH Actions runner tool cache"
# Required for various */setup-* actions to work, location is also know by various environment
# variable names in the actions/runner software : RUNNER_TOOL_CACHE / RUNNER_TOOLSDIRECTORY / AGENT_TOOLSDIRECTORY
# Warning, not all setup actions support the env vars and so this specific path must be created regardless
mkdir -p /opt/hostedtoolcache
echo "Creating actions-runner directory for the GH Action installation"
cd /opt/
mkdir -p actions-runner && cd actions-runner
if [[ -n "$RUNNER_TARBALL_URL" ]]; then
echo "Downloading the GH Action runner from $RUNNER_TARBALL_URL to $file_name"
curl -o $file_name -L "$RUNNER_TARBALL_URL"
else
echo "Retrieving TOKEN from AWS API"
token=$(curl -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 180")
region=$(curl -f -H "X-aws-ec2-metadata-token: $token" -v http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)
echo "Retrieved REGION from AWS API ($region)"
echo "Downloading the GH Action runner from s3 bucket $s3_location"
aws s3 cp "$s3_location" "$file_name" --region "$region"
fi
echo "Un-tar action runner"
tar xzf ./$file_name
echo "Delete tar file"
rm -rf $file_name
if [[ "$architecture" == "arm64" ]]; then
yum install -y libicu60
fi
os_id=$(awk -F= '/^ID/{print $2}' /etc/os-release)
if [[ "$os_id" =~ ^ubuntu.* ]]; then
echo "Installing dependencies"
./bin/installdependencies.sh
fi
echo "Set file ownership of action runner"
chown -R "$user_name":"$user_name" .
chown -R "$user_name":"$user_name" /opt/hostedtoolcache
# config runner for rootless docker
cd /opt/actions-runner/
# echo DOCKER_HOST=unix:///run/user/$USER_ID/docker.sock >>.env
# echo PATH=/home/$USER_NAME/bin:$PATH >>.env
cd /opt/actions-runner
# Docker permissions
sudo usermod -aG docker ubuntu
sudo usermod -aG docker runners
sudo usermod -aG docker ssm-user
# shellcheck shell=bash
## Retrieve instance metadata
echo "Retrieving TOKEN from AWS API"
token=$(curl -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 180")
region=$(curl -f -H "X-aws-ec2-metadata-token: $token" -v http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)
echo "Retrieved REGION from AWS API ($region)"
instance_id=$(curl -f -H "X-aws-ec2-metadata-token: $token" -v http://169.254.169.254/latest/meta-data/instance-id)
echo "Retrieved INSTANCE_ID from AWS API ($instance_id)"
tags=$(aws ec2 describe-tags --region "$region" --filters "Name=resource-id,Values=$instance_id")
echo "Retrieved tags from AWS API ($tags)"
environment=$(echo "$tags" | jq -r '.Tags[] | select(.Key == "ghr:environment") | .Value')
echo "Retrieved ghr:environment tag - ($environment)"
parameters=$(aws ssm get-parameters-by-path --path "/$environment/runner" --region "$region" --query "Parameters[*].{Name:Name,Value:Value}")
echo "Retrieved parameters from AWS SSM ($parameters)"
run_as=$(echo "$parameters" | jq --arg environment "$environment" -r '.[] | select(.Name == "/\($environment)/runner/run-as") | .Value')
echo "Retrieved /$environment/runner/run-as parameter - ($run_as)"
enable_cloudwatch_agent=$(echo "$parameters" | jq --arg environment "$environment" -r '.[] | select(.Name == "/\($environment)/runner/enable-cloudwatch") | .Value')
echo "Retrieved /$environment/runner/enable-cloudwatch parameter - ($enable_cloudwatch_agent)"
agent_mode=$(echo "$parameters" | jq --arg environment "$environment" -r '.[] | select(.Name == "/\($environment)/runner/agent-mode") | .Value')
echo "Retrieved /$environment/runner/agent-mode parameter - ($agent_mode)"
if [[ "$enable_cloudwatch_agent" == "true" ]]; then
echo "Cloudwatch is enabled"
amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c "ssm:$environment-cloudwatch_agent_config_runner"
fi
## Configure the runner
echo "Get GH Runner config from AWS SSM"
config=$(aws ssm get-parameters --names "$environment"-"$instance_id" --with-decryption --region "$region" | jq -r ".Parameters | .[0] | .Value")
while [[ -z "$config" ]]; do
echo "Waiting for GH Runner config to become available in AWS SSM"
sleep 1
config=$(aws ssm get-parameters --names "$environment"-"$instance_id" --with-decryption --region "$region" | jq -r ".Parameters | .[0] | .Value")
done
echo "Delete GH Runner token from AWS SSM"
aws ssm delete-parameter --name "$environment"-"$instance_id" --region "$region"
if [ -z "$run_as" ]; then
echo "No user specified, using default ec2-user account"
run_as="ec2-user"
fi
if [[ "$run_as" == "root" ]]; then
echo "run_as is set to root - export RUNNER_ALLOW_RUNASROOT=1"
export RUNNER_ALLOW_RUNASROOT=1
fi
chown -R $run_as .
echo "Configure GH Runner as user $run_as"
sudo --preserve-env=RUNNER_ALLOW_RUNASROOT -u "$run_as" -- ./config.sh --unattended --name "$instance_id" --work "_work" ${config}
## Start the runner
echo "Starting runner after $(awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime)"
echo "Starting the runner as user $run_as"
if [[ $agent_mode = "ephemeral" ]]; then
echo "Starting the runner in ephemeral mode"
sudo --preserve-env=RUNNER_ALLOW_RUNASROOT -u "$run_as" -- ./run.sh
echo "Runner has finished"
echo "Stopping cloudwatch service"
systemctl stop amazon-cloudwatch-agent.service
echo "Terminating instance"
aws ec2 terminate-instances --instance-ids "$instance_id" --region "$region"
else
echo "Installing the runner as a service"
./svc.sh install "$run_as"
echo "Starting the runner in persistent mode"
./svc.sh start
fi
Just tested the PR. First impression was all fine. But once digging in the log find the same error as once building the AMI for ubuntu22 (see #2101).
Userdata log in cloudwatch
+ [[ x64 == \a\r\m\6\4 ]]
--
++ awk -F= '/^ID/{print $2}' /etc/os-release
+ os_id='ubuntu
debian'
+ [[ ubuntu
debian =~ ^ubuntu.* ]]
+ echo 'Installing dependencies'
Installing dependencies
+ ./bin/installdependencies.sh
--------OS Information--------
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
------------------------------
The current OS is Debian based
--------Debian Version--------
bookworm/sid
------------------------------
/usr/bin/apt-get
Hit:1 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package liblttng-ust0
'apt-get' failed with exit code '0'
Can't install dotnet core dependencies.
You can manually install all required dependencies based on following documentation
https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x
In the log above you will find the error:
Reading state information...
E: Unable to locate package liblttng-ust0
'apt-get' failed with exit code '0'
Since the start script is exiting at a failure installation continues and the runner even got started. So not sure about the impact on the runner.
Adding a bit of more info.
Logs ubuntu20
nstalling dependencies
+ ./bin/installdependencies.sh
--------OS Information--------
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
------------------------------
The current OS is Debian based
--------Debian Version--------
bullseye/sid
------------------------------
/usr/bin/apt-get
Hit:1 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
libkrb5-3 is already the newest version (1.17-6ubuntu4.1).
libkrb5-3 set to manually installed.
zlib1g is already the newest version (1:1.2.11.dfsg-2ubuntu1.3).
zlib1g set to manually installed.
The following additional packages will be installed:
liblttng-ust-ctl4
The following NEW packages will be installed:
liblttng-ust-ctl4 liblttng-ust0
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 241 kB of archives.
After this operation, 1140 kB of additional disk space will be used.
Get:1 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu focal/main amd64 liblttng-ust-ctl4 amd64 2.11.0-1 [80.9 kB]
Get:2 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu focal/main amd64 liblttng-ust0 amd64 2.11.0-1 [160 kB]
dpkg-preconfigure: unable to re-open stdin: No such file or directory
Fetched 241 kB in 0s (6939 kB/s)
Selecting previously unselected package liblttng-ust-ctl4:amd64.
(Reading database ... 77053 files and directories currently installed.)
Preparing to unpack .../liblttng-ust-ctl4_2.11.0-1_amd64.deb ...
Unpacking liblttng-ust-ctl4:amd64 (2.11.0-1) ...
Selecting previously unselected package liblttng-ust0:amd64.
Preparing to unpack .../liblttng-ust0_2.11.0-1_amd64.deb ...
Unpacking liblttng-ust0:amd64 (2.11.0-1) ...
Setting up liblttng-ust-ctl4:amd64 (2.11.0-1) ...
Setting up liblttng-ust0:amd64 (2.11.0-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
Reading package lists...
Building dependency tree...
Reading state information...
libssl1.1 is already the newest version (1.1.1f-1ubuntu2.13).
libssl1.1 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu72
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu71
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu70
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu69
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu68
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libicu67
Reading package lists...
Building dependency tree...
Reading state information...
libicu66 is already the newest version (66.1-2ubuntu2.1).
libicu66 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
-----------------------------
Finish Install Dependencies
Just tested the PR. First impression was all fine. But once digging in the log find the same error as once building the AMI for ubuntu22 (see #2101).
Userdata log in cloudwatch
+ [[ x64 == \a\r\m\6\4 ]] -- ++ awk -F= '/^ID/{print $2}' /etc/os-release + os_id='ubuntu debian' + [[ ubuntu debian =~ ^ubuntu.* ]] + echo 'Installing dependencies' Installing dependencies + ./bin/installdependencies.sh --------OS Information-------- PRETTY_NAME="Ubuntu 22.04 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy ------------------------------ The current OS is Debian based --------Debian Version-------- bookworm/sid ------------------------------ /usr/bin/apt-get Hit:1 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-backports InRelease Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease Reading package lists... Reading package lists... Building dependency tree... Reading state information... E: Unable to locate package liblttng-ust0 'apt-get' failed with exit code '0' Can't install dotnet core dependencies. You can manually install all required dependencies based on following documentation https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2xIn the log above you will find the error:
Reading state information... E: Unable to locate package liblttng-ust0 'apt-get' failed with exit code '0'Since the start script is exiting at a failure installation continues and the runner even got started. So not sure about the impact on the runner.
Maybe ours has this error as well. Surprisingly though, the runner has been working absolutely fine.
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed if no further activity occurs. Thank you for your contributions.
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed if no further activity occurs. Thank you for your contributions.
Think this is fine to go in now with the new runner version
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed if no further activity occurs. Thank you for your contributions.
Thx for your help, we close the PR in favour of #2250