在 Serverless 应用开发中,我们需要手动执行部署命令将开发项目部署到云端。通过引入一些 CI 能力进行 Serverless 应用的自动化部署。
在开发测试阶段,为了方便开发、测试和调试,希望代码每次提交后进行自动化部署。操作如下:
注意:GitHub 规定如果事件发生在特定仓库分支上,则工作流程文件必须存在于该分支的仓库中 。
# 当代码推动到 dev 分支时,执行当前工作流程
# 更多配置信息: https://docs.github.com/cn/actions/getting-started-with-github-actions
name: deploy serverless
on: #监听的事件和分支配置
push:
branches:
- dev
jobs:
test: #配置单元测试
name: test
runs-on: ubuntu-latest
steps:
- name: unit test
run: ''
deploy:
name: deploy serverless
runs-on: ubuntu-latest
needs: [test]
steps:
- name: clone local repository
uses: actions/checkout@v2
- name: install serverless
run: npm install -g serverless
- name: install dependency
run: npm install
- name: build
run: npm build
- name: deploy serverless
run: sls deploy --debug
env: # 环境变量
STAGE: dev #您的部署环境
SERVERLESS_PLATFORM_VENDOR: tencent #serverless 境外默认为 aws,配置为腾讯
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} #您的腾讯云账号 sercret ID
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} #您的腾讯云账号 sercret key
完成上述配置后,开发者每次提交代码到 dev 分支时,就会自动部署。
在开发测试阶段,为了方便开发、测试和调试,希望代码每次提交后进行自动化部署。操作如下:
基础信息配置。本例中配置 Github 仓库:June1991/express-demo。
触发规则配置。本例中配置代码推送到 dev 分支时触发构建。
环境变量配置。本例中配置 STAGE 变量为部署环境 dev,TENCENT_CLOUD_API_CRED 为腾讯云账号密钥(密钥配置路径:左下角项目设置 > 开发者选项 > 凭据管理 > 录入凭据 > 腾讯云 API 密钥)。
流程配置。
pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
}
}
stage('安装依赖') {
steps {
echo '安装依赖中...'
sh 'npm i -g serverless'
sh 'npm install'
echo '安装依赖完成.'
}
}
stage('部署') {
steps {
echo '部署中...'
withCredentials([
cloudApi(
credentialsId: "${env.TENCENT_CLOUD_API_CRED}",
secretIdVariable: 'TENCENT_SECRET_ID',
secretKeyVariable: 'TENCENT_SECRET_KEY'
),
]) {
// 生成凭据文件
sh 'echo "TENCENT_SECRET_ID=${TENCENT_SECRET_ID}\nTENCENT_SECRET_KEY=${TENCENT_SECRET_KEY}" > .env'
// 部署
sh 'sls deploy --debug'
// 移除凭据
sh 'rm .env'
}
echo '部署完成'
}
}
}
}
完成以上配置后,开发者每次提交代码到 dev 分支时,就会自动部署。
本页内容是否解决了您的问题?