File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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!"
Original file line number Diff line number Diff line change 1+ locals {
2+ docker_image = " github-runner:${ substr (filesha256 (" ${ path . module } /docker/Dockerfile" ), 0 , 7 )} "
3+ }
4+
15resource "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
2529resource "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
Original file line number Diff line number Diff line change 11FROM 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" ]
Original file line number Diff line number Diff line change @@ -11,14 +11,22 @@ WORKDIR=${RUNNER_WORKDIR:-"/home/runner/_work"}
1111echo " Repository: $GITHUB_REPOSITORY "
1212echo " 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
1415echo " 🔑 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
2027if [[ -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
2331fi
2432
@@ -31,6 +39,7 @@ echo "✅ Registration token received"
3139 --labels " $LABELS " \
3240 --work " $WORKDIR " \
3341 --unattended \
42+ --ephemeral \
3443 --replace
3544
3645echo " ✅ Runner configured"
Original file line number Diff line number Diff 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"
You can’t perform that action at this time.
0 commit comments