Github Actions Artifact 在 Azure Web Apps 中部署需要花费很多时间
Posted
技术标签:
【中文标题】Github Actions Artifact 在 Azure Web Apps 中部署需要花费很多时间【英文标题】:Github Actions Artifact is taking to much to deploy in Azure Web Apps 【发布时间】:2021-11-22 18:56:21 【问题描述】:我正在尝试在 Azure Web 应用程序上部署我的应用程序。我有一个在 Azure 中连接我的 GitHub 存储库时默认提供的 Github Actions。问题是部署单个事物大约需要 45 分钟才能部署!用于部署的时间太疯狂了。我看到这样的消息:
知道为什么会发生这种情况或有更好的优化方法吗? (顺便说一句,我实际上是在部署一个 Next.js 应用)
这是我的 Github Actions 文件:
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: Build and deploy Node.js app to Azure Web App - app-admin
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
env:
AUTH0_CLIENT_ID: $ secrets.AUTH0_CLIENT_ID
AUTH0_DOMAIN: $secrets.AUTH0_DOMAIN
AUTH0_MANAGEMENT_CLIENT_ID: $secrets.AUTH0_MANAGEMENT_CLIENT_ID
AUTH0_MANAGEMENT_CLIENT_SECRET: $secrets.AUTH0_MANAGEMENT_CLIENT_SECRET
NEXT_PUBLIC_HASURA_GRAPHQL_ENDPOINT: $secrets.NEXT_PUBLIC_HASURA_GRAPHQL_ENDPOINT
NEXT_PUBLIC_HASURA_GRAPHQL_API_KEY: $secrets.NEXT_PUBLIC_HASURA_GRAPHQL_API_KEY
NEXT_PUBLIC_AUTH0_CLIENT_ID: $secrets.NEXT_PUBLIC_AUTH0_CLIENT_ID
NEXT_PUBLIC_AUTH0_DOMAIN: $secrets.NEXT_PUBLIC_AUTH0_DOMAIN
steps:
- uses: actions/checkout@v2
- name: Set up Node.js version
uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: node-app
path: .
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: $ steps.deploy-to-webapp.outputs.webapp-url
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: node-app
- name: 'Deploy to Azure Web App'
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: 'app-admin'
slot-name: 'Production'
publish-profile: $ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_667E58BB348E475EA5F1141747DD1CA9
package: .
【问题讨论】:
大部分人使用Docker镜像进行部署(单文件上传速度很快),你可以找到github.com/Azure/…这样的例子 【参考方案1】:感谢 Lex Li 支持您的回答,添加有关如何部署 docker 映像的过程
更好的方法是部署 docker 镜像,上传单个文件非常快。 下面是github链接以及一些docker镜像部署的示例代码。
on: [push]
name: Linux_Container_Node_Workflow
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# checkout the repo
- name: 'Checkout Github Action'
uses: actions/checkout@master
- uses: azure/docker-login@v1
with:
login-server: contoso.azurecr.io
username: $ secrets.REGISTRY_USERNAME
password: $ secrets.REGISTRY_PASSWORD
- run: |
docker build . -t contoso.azurecr.io/nodejssampleapp:$ github.sha
docker push contoso.azurecr.io/nodejssampleapp:$ github.sha
- uses: azure/webapps-deploy@v2
with:
app-name: 'node-rnc'
publish-profile: $ secrets.azureWebAppPublishProfile
images: 'contoso.azurecr.io/nodejssampleapp:$ github.sha '
【讨论】:
您好,感谢您的回答,我将对此进行测试并返回任何 cmets。以上是关于Github Actions Artifact 在 Azure Web Apps 中部署需要花费很多时间的主要内容,如果未能解决你的问题,请参考以下文章
在 Github Actions 上从 package.json 安装私有 github 包
如何使用 Github-actions 在 Docker 上使用 Mysql 运行 Prisma 迁移