如何将Python项目的.travis.yml转换为.circleci/config.yml配置文件
Travis CI 配置转 CircleCI 配置方案
你现有Travis配置的核心逻辑是启用Docker环境、安装docker-compose后执行测试与代码检查,以下是功能完全一致的CircleCI配置及使用说明:
配置文件内容
在项目根目录新建.circleci文件夹,在文件夹内创建config.yml文件,填入以下内容:
version: 2.1 jobs: build: # 启用自带Docker服务的虚拟机执行环境 machine: image: ubuntu-2204:current steps: # 拉取当前项目代码 - checkout # 对应原有before_script逻辑,安装docker-compose - run: name: 安装docker-compose依赖 command: pip3 install docker-compose # 对应原有script逻辑,执行测试和代码检查 - run: name: 运行Django测试与flake8代码检查 command: docker-compose run app sh -c "python manage.py test && flake8" workflows: version: 2 # 代码提交时自动触发的CI工作流 ci-test: jobs: - build
配置对应说明
- 原有Travis配置中
language: python、python: "3.8"、services: - docker的逻辑,对应上述配置中使用预装Docker、Python3环境的ubuntu虚拟机执行器,业务代码实际运行依赖你自己编写的Dockerfile中的Python3.8镜像,和原有逻辑完全一致 - 前置安装docker-compose、执行测试脚本的命令和原有配置完全相同,没有逻辑变更
小提示:你现有docker-compose.yml中ports配置写为
"8000-8000"属于端口段配置,如果你是要映射宿主机8000端口到容器8000端口,建议修改为"8000:8000",该问题不影响本次CI配置转换效果。
原有项目配置参考
Dockerfile
FROM python:3.8-alpine ENV PYTHONUNBUFFERED 1 COPY ./requirements.txt /requirements.txt RUN pip install -r /requirements.txt RUN mkdir /app WORKDIR /app COPY ./app /app RUN adduser -D user USER user
docker-compose.yml
version: "3.9" services: app: build: context: . ports: - "8000-8000" volumes: - ./app:/app command: > sh -c "python manage.py runserver 0.0.0.0:8000"
.travis.yml
language: python python: - "3.8" services: - docker before_script: pip install docker-compose script: - docker-compose run app sh -c "python manage.py test && flake8"
内容的提问来源于stack exchange,提问作者Sudipto Ghosh
相关产品推荐
相关产品推荐

