部署到预发布环境
设置工作流,自动将应用部署到预发布环境,以便进行生产前测试
部署到预发布环境 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
什么是预发布环境
假设您为应用构建了一个新功能。在向所有人展示它之前(也就是部署到生产环境之前),您需要先在安全且贴近真实情况的环境中进行测试。这时就需要预发布环境了!
预发布环境是生产环境的副本。它用于发布前的最终测试,让您能够发现问题并确保质量,同时不影响线上用户。
预发布环境与生产环境
虽然预发布环境与生产环境相似,但用途不同:
- 预发布环境:用于质量保证(QA)、用户验收测试(UAT)和最终检查。只有有限的用户群体(测试人员、利益相关者)会与其交互。
- 生产环境:供所有最终用户使用的线上环境。这里出现的任何问题都会直接影响客户。
先部署到预发布环境,是降低生产环境风险的关键步骤。
GitHub 环境功能
GitHub 的自动化工作流提供了一项名为环境的强大功能。您可以利用这些环境在代码库中定义逻辑环境(例如 staging 或 production)。
环境可以帮助您:
- 应用保护规则(人工批准、等待计时器)。
- 管理特定环境的机密。
- 跟踪针对特定环境的部署。
声明预发布环境
要在工作流中使用环境,您需要先在代码库的设置中定义它:
- 打开您的 GitHub 代码库。
- 点击设置 > 环境。
- 点击新建环境并命名,例如
staging。
您可以在这里添加保护规则,例如要求审阅者批准部署。
基本部署工作流结构
现在,让我们看看如何告知 GitHub 的自动化工作流将应用部署到 staging 环境。您需要在作业中指定环境:
name: Deploy to Staging
on: push
jobs:
deploy-to-staging:
runs-on: ubuntu-latest
environment: staging # This links to your 'staging' environment
steps:
- name: Say Hello
run: echo "Deploying to staging!"配置环境保护
工作流中的 environment: staging 行不仅用于标记部署。如果您在代码库设置中为 staging 环境设置了保护规则,这些规则也会自动应用。
例如,如果您要求人工批准,作业将暂停,直到获得授权的人员审查并批准部署。
构建您的应用
部署前,您通常需要先构建应用。这可能包括编译代码、运行测试或打包资源。我们会将这些步骤添加到作业中:
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js (Example build step)
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build部署构建产物
构建完成后,下一步是将应用文件传输到预发布服务器。这通常需要使用 SSH、FTP 或特定于云服务的部署工具。
下面是一个概念性步骤。在真实场景中,您需要将 echo 替换为实际的部署命令:
- name: Deploy to Staging Server
run: |
echo "Simulating deployment to staging..."
# scp -r ./dist user@staging.example.com:/var/www/html
# Or use a specific deployment action for AWS, Azure, etc.汇总:预发布工作流
这个完整的工作流会在向 develop 分支推送代码时触发。它会检出代码、构建应用,然后以示意方式将应用部署到 staging 环境,同时遵守您设置的保护规则。
name: Deploy to Staging Environment
on:
push:
branches:
- develop # Trigger only on pushes to the 'develop' branch
jobs:
deploy:
runs-on: ubuntu-latest
environment: staging # Link this job to the 'staging' environment
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js (Example)
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Deploy to Staging Server
run: echo "Deployment to staging completed!"预发布部署检查
您已经学习了如何设置 GitHub 的自动化工作流,将应用部署到预发布环境。让我们检验一下您的知识!
回顾:预发布部署
做得很好!您已经学会了如何设置 GitHub 的自动化工作流,将应用部署到预发布环境。
- 预发布环境是类似生产环境、用于上线前测试的环境。
- GitHub 的环境有助于管理部署安全性和机密。
- 工作流使用环境键来指定特定环境。
- 这一流程可以降低风险,确保更顺利地过渡到生产环境。
接下来,我们将探索如何使用环境变量和机密管理敏感信息!
常见问题解答
「部署到预发布环境」课时是免费的吗?
是的 — 「部署到预发布环境」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「部署到预发布环境」这节课中我会学到什么?
设置工作流,自动将应用部署到预发布环境,以便进行生产前测试 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「部署到预发布环境」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 持续部署简介
- 部署到预发布环境
- 环境变量与机密信息
- 通过审批门部署到生产环境