GitLab CI/CD

Page content

GitLab CI/CD

1年前くらいにやったやつを書き出していなくて、久しぶりに手を付けて困ったので書き出していこう。 イメージはこんな感じ

runner

GitLab のインストール (余談)

cicd セットアップの前に本体をね。 Amazon EC2 でやってみたときの簡単すぎるメモです。すでに GitLab の環境を持ってる人は気にしないでください。

  • 環境

    - instance spec
        - ap-northeast-2 (= KR)
        - 標準AMI
        - disk: 32GB
    - create
    - attach Elastic IP
    
  • インストール手順

    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    sudo yum install gitlab-ce
    vim /etc/gitlab/gitlab.rb
        # 書き換えを2点ほど
        `external_url` を EIP についてる FQDN に書き換え
        `gitlab_rails['time_zone']` はデフォルトが UTC になっているので、 Asia/Tokyo へ
    sudo gitlab-ctl reconfigure
        #-> これで設定反映
    
  • web UI から色々セットアップして終了

    • root password
    • create user/pw
    • login as the created user
    • update password
    • set ssh key

GitLab Runner のインストール

  • 公式手順に沿ってインストール Install GitLab Runner using the official GitLab repositories

  • リポジトリの cicd pipeline ごとに runner を用意することになる

    sudo /usr/local/bin/gitlab-runner register \
        --url <gitlab server が指定した URL> \
        --registration-token <同じく指定された token> \
        --name <runner name> \
        --tag-list <任意のtag> \  # 必須ではない?
        --executor docker \
        --docker-image alpine:latest \  # alpine じゃなくても良いかも
        --non-interactive
    
  • Qiita の GitLab RunnerでCI/CDしてみる(前編) も参考になりそう

    • project > CI/CD Settings > Environment variables でAWSアカウントの環境変数を持たせるとかが、 secret 系の情報の管理方法になりそう
      • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
  • pipeline の定義は .gitlab-ci.yml に書く。公式やサンプルアプリケーションなど色々参考にして頑張ってね

動作イメージ

pipeline

gitlab-cicd pipeline 強化

  • .gitlab-ci.yml の書き方

  • artifacts

    • というのは、ジョブが成功した後に成果物やディレクトリをその後のジョブ上で利用する為に使います。プロジェクトのワークスペース内のパスを指定することができます。全く違うジョブで生成ファイルをやりとりする場合は、 dependencies を見てください。