如何解决GitHub Workflow中安装Mailcatcher耗时过长的问题
方案1:使用Docker预构建Mailcatcher镜像(提速效果最优,通常10秒内可完成启动)
GitHub Actions的Ubuntu运行环境默认预装Docker,直接拉取官方镜像运行即可,完全省去Ruby环境配置、gem依赖编译的耗时,直接替换原有Install Ruby & run mailcatcher步骤:
- name: Run mailcatcher via Docker run: docker run -d -p 1080:1080 -p 1025:1025 schickling/mailcatcher
方案2:保留gem安装方式,优化安装参数
如果不想使用Docker,可修改gem安装命令,跳过文档生成、开启并发安装,可缩减60%以上的安装耗时:
- name: Install Ruby & run mailcatcher run: | sudo gem install mailcatcher --no-document --jobs 4 mailcatcher
--no-document 参数跳过ri和rdoc文档生成环节,--jobs 4开启4线程并发安装依赖包。
方案3:添加GitHub Actions缓存,复用已安装依赖
在安装步骤前新增gem缓存配置,后续运行只要Mailcatcher版本没有更新,就无需重新安装:
- name: Cache Ruby gems uses: actions/cache@v3 with: path: /var/lib/gems/ key: ${{ runner.os }}-gems-mailcatcher - name: Install Ruby & run mailcatcher run: | sudo gem install mailcatcher --no-document --jobs 4 mailcatcher
缓存生效后,安装步骤耗时可压缩至10秒以内。
以上三种方案均兼容你现有的验收测试配置,MailCatcher模块的地址、端口参数无需调整。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

