ขั้นตอนการใช้งาน
1) ลง Gitlab runner ในเครื่องที่เราต้องการให้มันทำงานด้วย
- download ตัวโปรแกรมมาก่อน โดยที่ ${arch} ให้แทนที่ด้วย
- amd64, arm หรือ arm64
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_${arch}.deb"
- ลงโปรแกรม
dpkg -i gitlab-runner_${arch}.deb
- เพิ่มสิทธิ์ให้กับโปรแกรม gitlab-runner
sudo chmod +x /usr/local/bin/gitlab-runner
- สั่งให้ gitlab-runner ทำงานบน user gitlab-runner และเก็บ build cache ไว้ที่ /home/gitlab-runner
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
2) ทำการผูก repository เข้ากับโปรแกรม gitlab-runner
- ไปเอาข้อมูล token ของ repository มาจากเว็บโดยเข้าที่เมนูด้านข้างของ repository บนเว็บที่ชื่อว่า Settings > CI / CD
ถ้าใครไม่เห็นเมนู Settings อาจจะเกี่ยวข้องกับ User ของท่านมีสิทธิ์เข้าไม่ถึง
- เข้าไปเมนู Runners เพื่อคัดลอก Token มา
- กลับมาในโปรแกรม gitlab-runner เพื่อทำการ register และใส่ข้อมูลตาม
ควรสั่งคำสั่งด้วย sudo เพื่อให้ gitlab-runner เราทำงานใน user ของ gitlab-runner เอง
sudo gitlab-runner register
3) เขียนไฟล์ .gitlab-ci.yml
# ขั้นตอนในการสั่งงาน
stages:
- dev-build
- dev-run
# ก่อนการทำงานในขั้นตอน dev-build และ dev-run
before_script:
- echo hello world
- $(pwd)
dev-build:
# stage ในการทำงาน
stage: dev-build
# enviroment ในการทำงานซึ่งมีผลกับการใช้งานตัวแปรใน Settings > CI / CD > Variables
environment:
name: dev
# tag หรือ branch ที่อยากให้ทำงานขั้นตอน dev-build
only:
- dev
# ต้องใส่ให้ตรงและครบถ้วนกับตอนที่เรา register ด้วย token
tags:
- dev
before_script:
- echo this is before script
after_script:
- this is after script
script:
- ./myshell.sh $CI_PROJECT_DIR $GITLAB_USER_EMAIL $MY_FIRST_KEY
- echo ending
dev-run:
stage: dev-run
environment:
name: staging
only:
- dev
tags:
- dev
before_script:
- echo this is before script
after_script:
- this is after script
script:
- ./myshell.sh $CI_COMMIT_TAG $MY_FIRST_KEY $MY_PEM
- cat $MY_PEM
- echo ending
4) หลังจากนั้นเราสามารถลอง push project เราขึ้นไปใน branch dev เพื่อทดลองการทำงานไฟล์ .gitlab-ci.yml ของเรา
(highlight สีแดง)
variable ชื่อ $MY_FIRST_KEY แต่เป็นของ environment dev
(highlight สีแดง)
variable ชื่อ $MY_FIRST_KEY แต่เป็นของ environment staging
(highlight สีเหลือง)
จะเห็นว่าหากใช้งาน variable แบบไฟล์ มันจะเก็บตัวแปรไว้ในไฟล์ และพอเรียกใช้สิ่งที่ได้คือ path ชั่วคราว (เมื่อ stage นี้ทำงานเสร็จแล้วมันก็จะหายไป)
Top comments (0)