2022/3/4

gitlab runner

ref:

from gitlab :

Download and Install Binary:
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner

# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

Command to register a runner:
sudo gitlab-runner register --url http://1b10f96444f4/ --registration-token $REGISTRATION_TOKEN

gitlab-runner 是一個獨立的 serivce,由 systemd run 起來,他會定期的 check gitlab server, project,看看有沒有符合的狀態要 run
當他發現要 run 的時候,就會啟動 executor。
executor 就是 你裝完 gitlab-runner 後,register 到某 project 的時候,指定的執行方式,可以是 shell, ssh, docker..
最一般就是 shell, shell-executor 會用 gitlab-runner 所在的系統用 gitlab-runner 這個 user 在他的 HOME: /home/gitlab-runner 下, run 你指定的 stage script

所以這個 gitlab-runner 所在的系統,必須先安裝好 run stage script 需要的 library 和 tool
不然就會 fail

所以gitlab ci/cd 就是安裝一個 service : gitlab-runner,幫你作 build, test, deploy 的動作。
這個 service: gitlab-runner ,可以幫很多 gitlab server/ project 做 CI/CD 服務。
只要 register 就可以。

所以 gitlab-runner register 就是設定它要為誰 (那一個 gitlab) 服務。
第一個參數就是 要服務得 gitlab server path。
第二格就是那個 gitlab server 提供的 tag,類似 key,靠這個 key 向那個 gitlab server 要求存取與通知。

gitlab-runner register 完後,那個 gitlab server 會收到通知,就會把這格 gitlab-runner 顯示在對應的 project 或 server settting (share runner) 下了。
之後,就可以用 這格 gitlab server 的 web 界面來 config gitlab-runner 的服務。

沒有留言:

張貼留言