Docker 与Jenkins的react应用程序的持续集成和持续交付

Docker 与Jenkins的react应用程序的持续集成和持续交付,docker,jenkins,amazon-s3,continuous-integration,continuous-delivery,Docker,Jenkins,Amazon S3,Continuous Integration,Continuous Delivery,我想为React应用程序设置CI和CD流程对于我工作的公司,使用以下技术: React用于前端 Flask用于后端 Docker GitHub用于源代码管理 目前我们正在使用一个脚本来构建应用程序,然后手动将其部署到AWS S3bucket,我已经阅读了一些文章并观看了教程,几乎所有的教程都涵盖了基于Java的项目,并使用Maven作为构建工具,在部署之前对项目进行打包 如果您能提供帮助,我将不胜感激。我同意这个问题有点宽泛,但一般来说,您应该为前端和后端应用程序提供不同的CI管道 由于这将允许

我想为
React应用程序
设置CI和CD流程对于我工作的公司,使用以下技术:

  • React
    用于前端
  • Flask
    用于后端
  • Docker
  • GitHub
    用于源代码管理
  • 目前我们正在使用一个脚本来构建应用程序,然后手动将其部署到
    AWS S3
    bucket,我已经阅读了一些文章并观看了教程,几乎所有的教程都涵盖了基于
    Java
    的项目,并使用
    Maven
    作为构建工具,在部署之前对项目进行打包


    如果您能提供帮助,我将不胜感激。

    我同意这个问题有点宽泛,但一般来说,您应该为前端和后端应用程序提供不同的CI管道

    由于这将允许您:

    • 为后端/前端应用程序使用不同的发布周期
    • 缩短构建时间
    不过,您可能会在某个时候运行一个集成步骤,以确保所有内容都保持一致。一般来说,您的管道应该是这样的(应该在每次提交时运行):

    还要确保您选择的CI/CD工具不会妨碍您,并且足够灵活(例如:GitLab、Jenkins)

    • 建立码头工人形象
    • Linter(确保最低的代码格式和质量)
    • 单元测试
    • 代码覆盖率(尽管代码覆盖率有点无用,但结合它的发展和实施最低%可能有助于提高质量)
    • 功能测试(如果后端堆栈使用数据库,这对它更有意义…)
    • 如果一切顺利,则推至DockerHub
    • 将最近构建的映像部署到相应的环境中。示例合并到开发意味着部署到您的登台环境

    目前,您的问题非常广泛且难以回答,您能否具体说明您在如何构建项目方面遇到了哪些困难?工作流程是,每当将提交推送到github时,我需要触发一个构建,我正在努力构建项目,我应该从开发者那里得到一个特定的构建文件,由jenkins执行吗?这是我第一次处理jenkins和整个CI和CD过程。这在很大程度上取决于您希望在构建中做什么。但是是的,它可以通过从开发人员那里获得的构建文件来完成。另一个例子(我最近遇到)是,我的管道本身执行所有步骤来编译和绑定css和JS,打包所有内容并将其推送到服务器。同样,这在很大程度上取决于您喜欢什么/构建脚本做什么。