

serverless.yml。

- name: serverless scf deployuses: woodyyan/tencent-serverless-action@main
# 当代码推动到 main 分支时,执行当前工作流程# 更多配置信息: https://docs.github.com/cn/actions/getting-started-with-github-actionsname: deploy serverless scfon: #监听的事件和分支配置push:branches:- mainjobs:deploy:name: deploy serverless scfruns-on: ubuntu-lateststeps:- name: clone local repositoryuses: actions/checkout@v2- name: deploy serverlessuses: woodyyan/tencent-serverless-action@mainenv: # 环境变量STAGE: dev #您的部署环境SERVERLESS_PLATFORM_VENDOR: tencent #serverless 境外默认为 aws,配置为腾讯TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} #您的腾讯云账号 sercret ID,请在Settings-Secrets中配置TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} #您的腾讯云账号 sercret key,请在Settings-Secrets中配置
name: deploy serverless scfon: #监听的事件和分支配置push:branches:- mainjobs:build-and-deploy:runs-on: ubuntu-latestpermissions:contents: readpackages: writesteps:- uses: actions/checkout@v2- name: Set up JDK 11uses: actions/setup-java@v2with:java-version: '11'distribution: 'temurin'server-id: github # Value of the distributionManagement/repository/id field of the pom.xmlsettings-path: ${{ github.workspace }} # location for the settings.xml file- name: Build with Gradle # Gradle项目用这个uses: gradle/gradle-build-action@937999e9cc2425eddc7fd62d1053baf041147db7with:arguments: build- name: Build with Maven # Maven项目用这个run: mvn -B package --file pom.xml- name: create zip folder # 此步骤仅用于Java Web函数,用于存放jar和scf_bootstrap文件。Java事件函数只需要在Serverless.yml中指定Jar目录就好。run: mkdir zip- name: move jar and scf_bootstrap to zip folder # 此步骤仅用于Java Web函数,用于移动jar和scf_bootstrap文件。Java事件函数只需要在Serverless.yml中指定Jar目录就好。注意如果是Maven编译请修改下面的jar路径为/target。run: cp ./build/libs/XXX.jar ./scf_bootstrap ./zip- name: deploy serverlessuses: woodyyan/tencent-serverless-action@mainenv: # 环境变量STAGE: dev #您的部署环境SERVERLESS_PLATFORM_VENDOR: tencent #serverless 境外默认为 aws,配置为腾讯TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} #您的腾讯云账号 sercret IDTENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} #您的腾讯云账号 sercret key
# 当代码推动到 main 分支时,执行当前工作流程# 更多配置信息: https://docs.github.com/cn/actions/getting-started-with-github-actionsname: deploy serverless scfon: #监听的事件和分支配置push:branches:- mainjobs:deploy:name: deploy serverless scfruns-on: ubuntu-lateststeps:- name: clone local repositoryuses: actions/checkout@v2- name: install dependencyrun: npm install- name: buildrun: npm build- name: deploy serverlessuses: woodyyan/tencent-serverless-action@mainenv: # 环境变量STAGE: dev #您的部署环境SERVERLESS_PLATFORM_VENDOR: tencent #serverless 境外默认为 aws,配置为腾讯TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }} #您的腾讯云账号 sercret ID,请在Settings-Secrets中配置TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY }} #您的腾讯云账号 sercret key,请在Settings-Secrets中配置
TENCENT_SECRET_ID 和 TENCENT_SECRET_KEY,您需要在 Github 代码仓库的设置中的 Secrets 里进行变量配置,如下图所示:


serverless.yml。scf_bootstrap 文件放在项目根目录下。pipeline {agent anystages {stage('检出') {steps {checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])}}stage('Package'){ // 此stage仅用于Java项目steps{container("maven") {echo 'Package start'sh "mvn package" // 此行用于Java Maven项目sh "./gradlew build" // 此行用于Java Gradle项目sh "mkdir zip" // 此行仅用于Java Web函数,用于存放jar和scf_bootstrap文件。Java事件函数只需要在Serverless.yml中指定Jar目录就好。sh "cp ./build/libs/XXX.jar ./scf_bootstrap ./zip" // 此行仅用于Java Web函数,用于移动jar和scf_bootstrap文件。Java事件函数只需要在Serverless.yml中指定Jar目录就好。注意如果是Maven编译请修改下面的jar路径为/target。}}}stage('安装依赖') {steps {echo '安装依赖中...'sh 'npm i -g serverless'sh 'npm install' // 此行用于NodeJS项目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 '部署完成'}}}}
文档反馈