0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitlab-CIの基本の設定の仕方

0
Posted at

最初の設定内容として。

ここのやり方が、さわりとして一番わかりやすい。

公式Docは以下。

プロジェクトのページ/設定/CICD

を選択し、runnerを選ぶ。runnerが存在しない場合は、プロジェクトrunnerから新しく作る。
なお、画像ではプロジェクトがグループに存在していないため、グループrunnerが一つも表示されていないが、このプロジェクトがグループに存在していると、利用できるrunnerが表示される。

image.png

gitlab-ci.ymlの確認

「ビルド」→「パイプライン」の中に、helloworldを実行するテストテンプレートがあるので、これを試す事が可能。
image.png
これを編集、改造していく事で、gitlab-ciを実行していくことになる。

runnerの指定。

runnerは、ci.yml内のtagsで設定できる。runnerにはタグが設定されており、ci.ymlで指定したタグを持つrunnerから実行させることができる。

以下のような設定で、mgmtとdockerのタグを持つrunnerから実行される。また、同じ条件のタグを持つ複数のrunnerがいる場合は、そこからランダムに実行される。

gitlab-ci.ymlの一部
default:
  tags:
    - mgmt
    - docker

ステージについて。

ステージはいわゆる、ansibleでいうタスクみたいな感じで、実行する内容をまとめた単位。
以下のような内容だと、

  • syntax-checkというステージにて、
    • ansible-lint
    • check-zone
      というジョブを走らせるという内容である。stage: ステージ名で記載できる。
stages:
 - syntax-check

ansible-lint:
  stage: syntax-check
  image: python:3.9
  variables:

  script:
    - pip install ansible-lint
    - chmod 755 ansible
    - 略~

check-zones:
  stage: syntax-check
  image: ubuntu:latest
  script:
    - bash 略.sh

よく使わられるパラメータは以下を参考にする。
公式Doc

Quitaでまとめてくれているのはこれ。

少し抜粋する。

パラメーター名 詳細
script Runnerで実行されるシェルスクリプト。コマンドでも可。
image 利用するDockerコンテナイメージ。
次の指定も可能: image:name, image:entrypoint.
services サービスで利用するDockerコンテナイメージ。
次の指定も可能: services:name, services:alias, services:entrypoint, services:command.
before_script ジョブを実行する前に動かすコマンドを設定。
after_script ジョブを実行した後に動かすコマンドを設定。
stages パイプラインのステージリストを定義。
stage ジョブのステージ名を定義(デフォルト: test)。
only ジョブが実行される条件を設定。
次の指定も可能: only:refs, only:kubernetes, only:variables, only:changes.
except ジョブが実行されない条件を設定。
次の指定も可能: except:refs, except:kubernetes, except:variables, except:changes.
rules ジョブの属性を評価して作成するかどうかを決める条件リスト。
only/exceptとは同時利用不可。
tags Runnerに設定されているタグを元に、特定のRunnerで実行。
allow_failure ジョブの失敗を許容する。失敗してもコミットステータスは変更されない。
when ジョブを実行するタイミング。
次の指定も可能: when:manual, when:delayed.
environment ジョブをデプロイする環境名。
次の指定も可能: environment:name, environment:url, environment:on_stop, environment:action.
cache ジョブ間で共有するキャッシュのファイルリスト。
次の指定も可能: cache:paths, cache:key, cache:untracked, cache:policy.
artifacts ジョブが成功したときに生成する成果物のファイルやディレクトリ。
次の指定も可能: artifacts:paths, artifacts:name, artifacts:untracked, artifacts:when, artifacts:expire_in, artifacts:reports, artifacts:reports:junit.
Enterprise Editionではさらに次が利用可能:
artifacts:reports:codequality, sast, dependency_scanning, container_scanning, dast, license_management, performance, metrics.
dependencies 複数のジョブの依存関係を設定し、成果物を受け渡すことが可能。
coverage ジョブのテストカバレッジ抽出設定。
retry ジョブ失敗時の自動リトライ回数や条件を設定。
timeout プロジェクト全体設定より優先される、ジョブ単位のタイムアウトを定義。
parallel ジョブを並列実行するインスタンス数を設定。
trigger 連携した下位パイプラインを呼び出す設定。
include 外部のYAMLファイルを読み込み追加する設定。
次の指定も可能: include:local, include:file, include:template, include:remote.
extends 他のジョブ設定を読み込んで拡張する設定。
pages GitLab Pagesを使ってジョブの結果をアップロードする設定。
variables ジョブレベルで変数を設定。
interruptible 新しいパイプライン実行時にジョブをキャンセル可能にする設定。
resource_group ジョブの同時実行制限_

Ansibleでは、ステージ毎に環境が設定される。そのため、ansibleをセットアップした環境を他のステージに引き継ぐには、少し設定を追加する必要がある。

Gitlab-CIで作成したファイルをDLする。

artifactsというパラメータを用いる事で、そこで指定したファイルをGitlabからDLする事ができるようにする。具体的な指定方法は以下の通り。

gitlab-ci.yml
# pathsで指定したファイルをDLできるようにする。
  artifacts:
    paths:
      - "*.xlsx"       # ここに、DL予定のファイル名を記載。
    expire_in: 1 week  # ダウンロード可能期間

これを指定した後、ジョブの実行結果の所から以下の画像のようにDLを選択できるボタンが表示される。これを押す事でファイルをDLする事ができる。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?