Gitlab 编排 .gitlab-ci.yaml

1. 快速构建.gitlab-ci.yaml

创建一个项目 .gitlab-ci.yaml 创建一个模板.gitlab-ci.yaml 在这里插入图片描述 在这里插入图片描述 选择Getting-started模板 在这里插入图片描述

stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  script:
    - echo "Running unit tests... This will take about 60 seconds."
    - sleep 60
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 全部正常。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 我们充分利用模板文件,可以为我们节省大量的时间。

2. python demo ci

2.1 推送项目至gitlab

记录模块清单

pip freeze > requestments.txt
git init
git add .
git commit -m "add a new python demo"
git remote add origin root@gitlab.example.com:8081/root/flask_web1.git
git push

2.2 安装gitlab-runner

docker run -d --name gitlab-runner --restart always --net=host \
     -v /srv/gitlab-runner/config:/etc/gitlab-runner \
     -v /var/run/docker.sock:/var/run/docker.sock \
     gitlab/gitlab-runner:latest

2.3 选择一个本地部署的需求

我们就要为该项目注册shell运行的执行器的runner

$ docker run --rm --net=host -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:alpine-v14.4.2 register
Runtime platform                                    arch=amd64 os=linux pid=7 revision=50fc80a6 version=14.4.2
Running in system-mode.                            

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://gitlab.example.com:8081
Enter the registration token:
8BxfhdBE2zf8NioR1UFE
Enter a description for the runner:
[yourdomain.com]: flask_demo
Enter tags for the runner (comma-separated):
python
Registering runner... succeeded                     runner=8BxfhdBE
Enter an executor: custom, parallels, docker+machine, kubernetes, docker, docker-ssh, shell, ssh, virtualbox, docker-ssh+machine:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

查看配置

$ cat /srv/gitlab-runner/config/config.toml 
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "demo"
  url = "http://gitlab.example.com:8081/"
  token = "PF41kT9ZV_1DoT6VzcCu"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "ubuntu:20.04"
    dns = ["8.8.8.8", "1.1.1.1"]
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    extra_hosts = ["gitlab.example.com:192.168.211.70"]
    shm_size = 0

..........

[[runners]]
  name = "flask_demo"
  url = "http://gitlab.example.com:8081"
  token = "tvCxfurs7EmRApH7un2a"
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

为此项目注册runner,并不会影响其他项目的项目,因为配置是追加的。

选择一个最接近你的需求的、并修改量小的.gitlab-ci.yaml模板

在这里插入图片描述 修改.gitlab-ci.yaml 我的本地环境是ubuntu:8.04,本地可能没有flask,所以要在.gitlab-ci.yaml,装完就可以部署,两步走,即两个stage。 .gitlab-ci.yaml

stages:
  - dep          # List of stages for jobs, and their order of execution
  - deploy

dep-job:
  stage: dep
  script:
    - apt -y install python3-pip
    - pip3 install flask

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  script:
    - echo "Deploying python flask demo application..."
    - python3 app.py"

创建一个Dockerfile模板 在这里插入图片描述

在这里插入图片描述 修改Dockerfile 在这里插入图片描述


更多阅读:

Copyright © ghostwritten 浙ICP备2020032454号 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-06-06 04:47:59

results matching ""

    No results matching ""