前两天团队接到一个新项目,我需要为其配置Circle CI,于是就又折腾了一下,不过还好,毕竟之前做过运维的,CI的基本原理是知道的,所以很快就弄好了,这里也简单的记录一下。
1. 为项目开启Circle CI
这一步需要在circleci后台项目列表里面为指定的项目开启配置Set Up Project
,因为第一步已经编写好了配置文件,所以这里可以直接选择start building
。这一步circleci会自动在对应的项目里面添加Deploy Key
并且会自动配置到circleci的项目管理里面,如下:
2. 生成ssh key
这里生成的key是为了circleci能够远程登陆到目标服务器所用的key。使用命令生成key,位置最好是/Users/<username>/.ssh/id_rsa
,不然git pull
的时候得单独指定拉取的key
1
| ssh-keygen -t rsa -C "myCI"
|
然后将该key的公钥添加到Github账号下的ssh配置里面,再将其私钥配置到circle ci中去:
3. 在代码里添加ci配置文件
在项目根目录添加这样一个文件: .circleci/config.yml
,这是一个PHP项目的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| version: 2.1 orbs: php: circleci/php@1.0.1 jobs: build-and-test: executor: name: php/default steps: - checkout - php/install-composer deploy-dev: machine: enabled: true working_directory: ~/repo-name steps: - add_ssh_keys: fingerprints: - "aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp" - run: name: Adding known host command: ssh-keyscan 8.8.8.8 >> ~/.ssh/known_hosts - run: name: Update git And packages command: ssh work@8.8.8.8 'cd /var/www/html && git fetch -p && git reset --hard origin/develop && git pull && composer install' deploy-prod: machine: enabled: true working_directory: ~/repo-name steps: - add_ssh_keys: fingerprints: - "aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp" - run: name: Adding known host command: ssh-keyscan 8.8.8.8 >> ~/.ssh/known_hosts - run: name: Update git And packages command: ssh work@8.8.8.8 '集成命令'
workflows: build-and-test: jobs: - build-and-test - deploy-dev: requires: - build-and-test filters: branches: only: develop - deploy-prod: requires: - build-and-test filters: branches: only: master
|
4. 推送代码到指定分支检查pipeline是否成功