Skip to content

Commit 0d11865

Browse files
author
Arnaud Tincelin
committed
Fix runner
1 parent 75320f6 commit 0d11865

5 files changed

Lines changed: 22 additions & 23 deletions

File tree

.github/workflows/test-private-runner.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,3 @@ jobs:
2727

2828
- name: List environment variables
2929
run: env | sort
30-
31-
- name: Test Docker availability
32-
run: |
33-
docker --version
34-
docker ps
35-
36-
- name: Run a simple container
37-
run: |
38-
docker run --rm hello-world
39-
40-
- name: Build sample application
41-
run: |
42-
echo "Building application..."
43-
echo "Build completed successfully!"

acr.tf

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
locals {
2+
docker_image = "github-runner:${substr(filesha256("${path.module}/docker/Dockerfile"), 0, 7)}"
3+
}
4+
15
resource "azurerm_container_registry" "this" {
26
name = "githubrunner${var.unique_suffix}"
37
resource_group_name = azurerm_resource_group.this.name
@@ -24,7 +28,7 @@ resource "azurerm_role_assignment" "acr_pull" {
2428

2529
resource "terraform_data" "docker_runner_image" {
2630
triggers_replace = {
27-
dockerfile_hash = filesha256("${path.module}/docker/Dockerfile")
31+
dockerfile_hash = local.docker_image
2832
entrypoint_hash = filesha256("${path.module}/docker/entrypoint.sh")
2933
acr_name = azurerm_container_registry.this.name
3034
rg_name = azurerm_resource_group.this.name
@@ -36,7 +40,7 @@ resource "terraform_data" "docker_runner_image" {
3640
--resource-group ${self.triggers_replace.rg_name} \
3741
--registry ${self.triggers_replace.acr_name} \
3842
--image github-runner:latest \
39-
--image github-runner:${substr(self.triggers_replace.dockerfile_hash, 0, 7)} \
43+
--image ${self.triggers_replace.dockerfile_hash} \
4044
--file docker/Dockerfile \
4145
docker/
4246
EOT

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM ghcr.io/actions/actions-runner:2.330.0
22

3-
COPY entrypoint.sh entrypoint.sh
3+
COPY ./entrypoint.sh ./entrypoint.sh
44

5-
ENTRYPOINT [ "entrypoint.sh" ]
5+
ENTRYPOINT [ "./entrypoint.sh" ]

docker/entrypoint.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@ WORKDIR=${RUNNER_WORKDIR:-"/home/runner/_work"}
1111
echo "Repository: $GITHUB_REPOSITORY"
1212
echo "Labels: $LABELS"
1313

14+
# https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository
1415
echo "🔑 Requesting registration token from GitHub API..."
15-
REGISTRATION_TOKEN=$(curl -s -X POST \
16-
-H "Authorization: token ${GITHUB_PAT}" \
17-
-H "Accept: application/vnd.github.v3+json" \
18-
"https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runners/registration-token" | jq -r .token)
16+
RESPONSE=$(curl -L -s -w "\n%{http_code}" -X POST \
17+
-H "Authorization: Bearer ${GITHUB_PAT}" \
18+
-H "X-GitHub-Api-Version: 2022-11-28" \
19+
-H "Accept: application/vnd.github+json" \
20+
"https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runners/registration-token")
21+
22+
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
23+
BODY=$(echo "$RESPONSE" | sed '$d')
24+
25+
REGISTRATION_TOKEN=$(echo "$BODY" | jq -r .token)
1926

2027
if [[ -z "$REGISTRATION_TOKEN" || "$REGISTRATION_TOKEN" == "null" ]]; then
2128
echo "❌ Failed to obtain registration token" >&2
29+
echo "API Response (HTTP $HTTP_CODE): $BODY" >&2
2230
exit 1
2331
fi
2432

@@ -31,6 +39,7 @@ echo "✅ Registration token received"
3139
--labels "$LABELS" \
3240
--work "$WORKDIR" \
3341
--unattended \
42+
--ephemeral \
3443
--replace
3544

3645
echo "✅ Runner configured"

main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ resource "azurerm_container_app_job" "this" {
6767

6868
template {
6969
container {
70-
image = "${azurerm_container_registry.this.login_server}/github-runner:latest"
70+
image = "${azurerm_container_registry.this.login_server}/${local.docker_image}"
7171
name = "github-runner"
7272
cpu = 0.5
7373
memory = "1Gi"

0 commit comments

Comments
 (0)