使用 Runner

GitLab CI 地址与令牌参数

项目 –> 设置 –> CI/CD –> Runner 设置

.gitlab-ci.yml

在项目工程下编写 .gitlab-ci.yml 配置文件:

  1. stages:
  2. - install_deps
  3. - test
  4. - build
  5. - deploy_test
  6. - deploy_production
  7. cache:
  8. key: ${CI_BUILD_REF_NAME}
  9. paths:
  10. - node_modules/
  11. - dist/
  12. # 安装依赖
  13. install_deps:
  14. stage: install_deps
  15. only:
  16. - develop
  17. - master
  18. script:
  19. - npm install
  20. # 运行测试用例
  21. test:
  22. stage: test
  23. only:
  24. - develop
  25. - master
  26. script:
  27. - npm run test
  28. # 编译
  29. build:
  30. stage: build
  31. only:
  32. - develop
  33. - master
  34. script:
  35. - npm run clean
  36. - npm run build:client
  37. - npm run build:server
  38. # 部署测试服务器
  39. deploy_test:
  40. stage: deploy_test
  41. only:
  42. - develop
  43. script:
  44. - pm2 delete app || true
  45. - pm2 start app.js --name app
  46. # 部署生产服务器
  47. deploy_production:
  48. stage: deploy_production
  49. only:
  50. - master
  51. script:
  52. - bash scripts/deploy/deploy.sh

项目中的Dockerfile

  1. FROM openjdk:8-jre
  2. MAINTAINER happyxianyu <hzlim.xy@qq.com>
  3. ENV APP_VERSION 1.0.0-SNAPSHOT
  4. RUN mkdir /app
  5. COPY demo-$APP_VERSION.jar /app/app.jar
  6. ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/app.jar", "--spring.profiles.active=prod"]
  7. EXPOSE 8888

当你需要等待其他项目启动再启动此项目时添加如下插件:

  1. ENV DOCKERIZE_VERSION v0.6.1
  2. RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
  3. && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
  4. && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
  5. ENTRYPOINT ["dockerize", "-timeout", "5m", "-wait", "tcp://192.168.1.154:8888", "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/app.jar", "--spring.profiles.active=prod"]