ขั้นตอนการใช้งาน
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)