| 知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
https://gitlab.com/gitlab-examples
[root@localhost ~]# wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 --2019-06-06 16:19:31-- https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 Resolving gitlab-runner-downloads.s3.amazonaws.com (gitlab-runner-downloads.s3.amazonaws.com)... 52.216.10.19 Connecting to gitlab-runner-downloads.s3.amazonaws.com (gitlab-runner-downloads.s3.amazonaws.com)|52.216.10.19|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 30832000 (29M) [application/octet-stream] Saving to: '/usr/local/bin/gitlab-runner' 100%[==================================================================================================================================================================================================>] 30,832,000 113KB/s in 7m 11s 2019-06-06 16:26:44 (69.8 KB/s) - '/usr/local/bin/gitlab-runner' saved [30832000/30832000] [root@localhost ~]# chmod +x /usr/local/bin/gitlab-runner [root@localhost ~]# useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash [root@localhost ~]# gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner Runtime platform arch=amd64 os=linux pid=113531 revision=ac2a293c version=11.11.2 [root@localhost ~]# gitlab-runner start Runtime platform arch=amd64 os=linux pid=113576 revision=ac2a293c version=11.11.2
[root@localhost ~]# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=114182 revision=ac2a293c version=11.11.2
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.1.229/
Please enter the gitlab-ci token for this runner:
5iF88xJLfFgpvRJySam2
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]:
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
Registering runner... succeeded runner=5iF88xJL
Please enter the executor: docker, docker-ssh, parallels, ssh, virtualbox, kubernetes, shell, docker+machine, docker-ssh+machine:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
[root@localhost ~]# cat /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "localhost.localdomain"
url = "http://192.168.1.229/"
token = "09936a09484934dec93d78ffa49b89"
executor = "shell"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
進入項目設置界面,點擊 Settings,再點擊 CI / CD
![]() |
點擊 Expand 按鈕 展開 Runners
![]() |
這時可以看到 Set up a specific Runner manually, 後面會用到 http://192.168.1.96/ 和 zASzWwffenos6Jbbfsgu
使用 SSH 登錄 Gitlab runner 伺服器,運行 gitlab-runner register
[root@localhost ~]# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=92925 revision=ac2a293c version=11.11.2
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.1.96/
Please enter the gitlab-ci token for this runner:
zASzWwffenos6Jbbfsgu
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]:
Please enter the gitlab-ci tags for this runner (comma separated):
Registering runner... succeeded runner=zASzWwff
Please enter the executor: docker, docker-ssh, shell, ssh, docker-ssh+machine, parallels, virtualbox, docker+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
返回 gitlab 查看註冊狀態
![]() |
image: maven:3.5.0-jdk-8
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
- .m2/repository/
- target/
stages:
- build
- test
- package
build:
stage: build
script: mvn compile
unittest:
stage: test
script: mvn test
package:
stage: package
script: mvn package
artifacts:
paths:
- target/java-project-0.0.1-SNAPSHOT.jar
image: mileschou/php-testing-base:7.0
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- composer install
cache:
untracked: true
artifacts:
paths:
- vendor/
test_job:
stage: test
script:
- php vendor/bin/codecept run
dependencies:
- build_job
deploy_job:
stage: deploy
script:
- echo Deploy OK
only:
- release
when: manual
only:
- master
tags:
- ansible
services: - mysql variables: # Configure mysql service (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: hello_world_test MYSQL_ROOT_PASSWORD: mysql connect: image: mysql script: - echo "SELECT 'OK';" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
#image: java:8
#image: maven:latest
image: maven:3.5.0-jdk-8
stages:
- build
- test
- package
build:
stage: build
script: mvn compile
unittest:
stage: test
script: mvn test
package:
stage: package
script: mvn package
artifacts:
paths:
- target/java-project-0.0.1-SNAPSHOT.jar
before_script: - echo "Execute scripts which are required to bootstrap the application. !" after_script: - echo "Clean up activity can be done here !." stages: - build - test - package - deploy variables: MAVEN_CLI_OPTS: "--batch-mode" MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" cache: paths: - .m2/repository/ - target/ build: stage: build image: maven:latest script: - mvn $MAVEN_CLI_OPTS clean compile test: stage: test image: maven:latest script: - mvn $MAVEN_CLI_OPTS test package: stage: package image: maven:latest script: - mvn $MAVEN_CLI_OPTS package artifacts: paths: [target/test-0.0.1.war] deploy_test: stage: deploy script: - echo "######## To be defined ########" environment: staging deploy_prod: stage: deploy script: - echo "######## To be defined ########" only: - master environment: production
build site:
image: node:6
stage: build
script:
- npm install --progress=false
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist
unit test:
image: node:6
stage: test
script:
- npm install --progress=false
- npm run unit
deploy:
image: alpine
stage: deploy
script:
- apk add --no-cache rsync openssh
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
- chmod 600 ~/.ssh/id_dsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- rsync -rav --delete dist/ user@server.com:/your/project/path/