我们想将Jenkins中当前的CI / CD服务器迁移到TravisCI。但是面临的挑战很少。
我们当前的部署过程是,我们正在使用master分支部署到不同的环境中,即dev,uat和prod。 PR合并到主服务器后,构建和deploy-dev作业将自动运行。当团队对开发环境感到满意时,他们会前往Jenkins并手动触发uat部署或prod部署,然后将其部署到同一master分支中的其他环境中。有针对自己环境的Jenkinsfile.dev,Jenkinsfile.uat和Jenkinsfile.prod,我们在其中设置env特定变量并相应地进行部署。
在TravisCI中上述流程是否不可能?
我已经阅读了TravisCI的文档和许多其他示例,在这些示例中,人们必须将条件语句放在单个travis.yml文件中才能部署到其他环境。在每个示例中,人们都为每种环境创建不同的分支,并使用条件语句进行部署,例如
deploy:
- provider: script
script: deploy_production.sh
on:
branch: production
- provider: script
script: deploy_staging.sh
on:
branch: staging
我们不想为每个环境创建单独的分支。我们不能从同一master分支部署到不同的env吗? 如果不是,Travis CI为什么采用这种方法。