持续集成(CI)
持续交付(CD)

类型

  • share 共享类型 ,运行整个平台项目的作业
  • group 项目组类型, 运行特定group下的所有项目的作业
  • specific 项目类型,运行指定的项目作业

base

1.install gitlab runner

  1. curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
  2. export GITLAB_RUNNER_DISABLE_SKEL=true; sudo -E yum install gitlab-runner
  3. gitlab-runner -h
  4. gitlab-runner verify
  5. gitlab-runner list

Installed:
gitlab-runner.x86_64 0:13.5.0-1
Install GitLab Runner using the official GitLab repositories

2.Run runner in a container

docker pull gitlab/gitlab-runner:latest

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

# 查看日志
docker logs gitlab-runner
docker exec -it gitlab-runner /bin/bash

Run GitLab Runner in a container

3.Register

image.png

# docker
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

alpine:latest

docker version
19.03.12

-

before_script:
    -    echo "before"

variables:
    DOMAIN: "domain"

stages:
    - build
  - test
  - codescan
  - deploy

job1: 
    before_script:
      - 
    script: ""

job2:
    script: ""

 # 每个作业至少要一个scripts 
 # tags -指定runner
 #
# 构建阶段
stages:
  - install_deps
  - build


image: node:latest

cache:
  paths:
    # 缓存node_mudules将大大提高ci运行的速度
    - node_modules/
    - dist/


# 构建工作-安装依赖
job_install_deps:
  stage: install_deps
  # 匹配使用哪个tag的runner(注册时填写的)
  tags:
    - 1.0.1
  only:
    - master
  script:
    - echo Hello gitlab -cli
    - npm run start


# 构建工作-编译
job_build:
  stage: build
  # 匹配使用哪个tag的runner
  tags:
    - 1.0.1
  # 所有操作只在如下分支上进行
  only:
    - master
  # 阶段运行的脚本
  script:
    - echo 开始npm build啦🌶
    - npm run build

报错

This job is stuck because the project doesn’t have any runners online assigned to it. Go to project CI settings
编辑一下该runner 勾选
Indicates whether this runner can pick jobs without tags

ERROR: Job failed: Error response from daemon: pull access denied for 19.03.12, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied (docker.go:142:31s)

docker 部署前端

FROM nginx:latest
COPY ./index.html /usr/share/nginx/html/index.html
EXPOSE 80

docker build -t web:1.0.0 .
docker run --name web-demo -d -p 8080:80 web:1.0.0
docker run -it -d -p 8080:80 --rm --name web-demo web:1.0.0
# -t 为容器分配一个伪输入终端, 通常与-i一起使用

error during connect: Get http://docker:2375/v1.40/info: dial tcp: lookup docker on 100.100.2.136:53: no such host

Gitlab CI — 前端自动化构建及优化