Gitlab - CI/CD
.gitlab-ci.yml 搞定 CI/CD Pipeline
GitLab CI 會檢查 repo 內是否有 .gitlab-ci.yml 的檔案,根據 .gitlab-ci.yml 所定義的內容自動建立 CI/CD Pipeline。如果要建立 build / test / deploy 這三個階段,我們可以按以下的步驟撰寫 .gitlab-ci.yml。 三個 job name 並且只在prod分支發生MR時執行:
- build-job,build-job 只在 build stage執行。
- test-job,test-job 只在 test stage執行。
- deploy-job,deploy 只在 deploy stage執行。
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
test-job:
stage: test
script:
- echo "This job tests something"
deploy:
image: ruby:latest
stage: deploy
variables:
HEROKU_APP_NAME: "app-name"
HEROKU_API_KEY: "api-key"
before_script:
- gem install dpl && gem install faraday -v 1.8.0
script:
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
only:
- prod