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