https://www.jhipster.tech/setting-up-ci/
dockerで動かす際の説明 https://docs.gitlab.com/runner/install/docker.html
https://about.gitlab.com/features/continuous-integration/
.gitlab-ci.yml ファイルはパイプラインの構造と順序を定義し、以下のことを決めます。
https://gitlab-docs.creationline.com/ee/ci/yaml/
https://gitlab-docs.creationline.com/ee/ci/quick_start/README.html
https://gitlab-docs.creationline.com/ee/ci/examples/README.html
https://gitlab-docs.creationline.com/ee/ci/examples/artifactory_and_gitlab/index.html
https://gitlab-docs.creationline.com/ee/ci/examples/deploy_spring_boot_to_cloud_foundry/index.html
jhipster ci-cd
を実行してみる
選択枝でGitLabを選ぶ
In GitLab CI, perform the build in a docker container
となる。
y
を選ぶ
.gitlab-ci.yml
が変更になる
追加のタスクは何もなしで進むと以下のコードが追加された
image: jhipster/jhipster:v7.9.3 cache: key: '$CI_COMMIT_REF_NAME' paths: - .maven/ stages: - check - build - test - analyze - package - release - deploy before_script: - export MAVEN_USER_HOME=`pwd`/.maven nohttp: stage: check script: - ./mvnw -ntp checkstyle:check -Dmaven.repo.local=$MAVEN_USER_HOME maven-compile: stage: build script: - ./mvnw -ntp compile -P-webapp -Dmaven.repo.local=$MAVEN_USER_HOME artifacts: paths: - target/classes/ - target/generated-sources/ expire_in: 1 day maven-test: services: - docker:dind variables: # Instruct Testcontainers to use the daemon of DinD. DOCKER_HOST: 'tcp://docker:2375' # Improve performance with overlayfs. DOCKER_DRIVER: overlay2 stage: test script: - ./mvnw -ntp verify -P-webapp -Dmaven.repo.local=$MAVEN_USER_HOME artifacts: reports: junit: - target/surefire-reports/TEST-*.xml - target/failsafe-reports/TEST-*.xml paths: - target/surefire-reports - target/failsafe-reports - target/site expire_in: 1 day frontend-test: stage: test script: - npm install - npm test artifacts: reports: junit: target/test-results/TESTS-results-jest.xml paths: - target/test-results - target/jacoco expire_in: 1 day maven-package: stage: package script: - ./mvnw -ntp verify -Pprod -DskipTests -Dmaven.repo.local=$MAVEN_USER_HOME artifacts: paths: - target/*.jar - target/classes expire_in: 1 day # Uncomment the following line to use gitlabs container registry. You need to adapt the REGISTRY_URL in case you are not using gitlab.com #docker-push: # stage: release # variables: # REGISTRY_URL: registry.gitlab.com # IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHA # dependencies: # - maven-package # script: # - ./mvnw -ntp jib:build -Pprod -Djib.to.image=$IMAGE_TAG -Djib.to.auth.username=gitlab-ci-token -Djib.to.auth.password=$CI_BUILD_TOKEN -Dmaven.repo.local=$MAVEN_USER_HOME
もしかしてGitLabRunner?は別サーバにたてるのだろうか?
以下に構築方法を解説しているサイトがあった。
https://syachiku.net/docker-gitlab-gitlab-runner/
gitlab-runner: image: gitlab/gitlab-runner:latest container_name: gitlab-runner restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - /root/gitlab/gitlab-runner-config:/etc/gitlab-runner ports: - "8093:8093"
mkdir -p /root/gitlab/gitlab-runner-config
https://docs.gitlab.com/runner/
正直、オンプレミスではどうしたらよいのか親切には書いてない。
https://www.gitlab.jp/blog/2022/09/26/runner-summary/
画面のキャプチャとかあって、本家よりわかりやすいかもしれない。インストール部分は、自分はdocker-composeを使ったので、参考にしてないが、GitRunner?の登録の仕方が本家の説明で要領を得なかったので、ここを参考にした。
メモしたい項目の具体的な項目名:
docker-compose ps
起動させてあるのが、前提条件ですが、上記のコマンドで、実行済みのgitlab-runnerのコンテナ名を調べます。
docker exec -it 上記手順で調べたドッカーコンテナ名 bash
コマンドを実行する前に、どのようなコマンドがあるのか確認してみましょう。
gitlab-runner --help
登録に実行するコマンドは、以下のコマンドですが、、
gitlab-runner register
上記コマンドだと、インタラクティブなのですが、コマンドラインだけでやる方法もあります。
gitlab-runner register --non-interactive --locked=false --url=<URL> --registration-token=<token> --name=container-runner --tag-list=tag-runner --executor=docker --docker-privileged=true --docker-image=docker:20.10.15-dind
Shell
で、参考にしたサイトは
https://e-penguiner.com/build-gitlab-runner-with-docker/
です。
実行すると、上記の場合は質問されないです。いろいろなサイトで見つけるやり方だといくつか質問をしてくるので、上記手順でメモした内容で答えていきます。
実行タイプはdockerを選んだほうがdocker上のGitLabに認識してもらえるので、いいかと思います。
質問結果は以下に保存されます。
/etc/gitlab-runner/config.toml
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
実行は、
gitlab-runner run &
です。
停止は、
gitlab-runner stop
です。