📌  相关文章
📜  Microsoft Azure – 在 Azure 应用服务中使用 Github Action(1)

📅  最后修改于: 2023-12-03 15:02:56.776000             🧑  作者: Mango

Microsoft Azure – 在 Azure 应用服务中使用 Github Action

Microsoft Azure是一种云计算平台,可为企业提供安全的云服务,包括云存储、虚拟机和数据管理。Azure应用服务是Azure平台的一种服务,允许用户轻松构建、部署和扩展Web应用程序和API。

Github Action是Github官方提供的一种工作流服务,可以将常见的CI/CD任务封装为自动化脚本,与Github代码库紧密集成。

在Azure应用服务中使用Github Action

使用Github Action可以将项目自动部署到Azure应用服务。具体步骤如下:

  1. 在Azure应用服务中创建Web应用程序,记录下Web应用程序的名称和发布用户名/密码。

  2. 在Github的仓库中创建一个workflow文件,用于构建和部署应用程序。

    name: Azure App Service
    on:
      push:
        branches:
          - main
    env:
      AZURE_WEBAPP_NAME: <Web应用程序名称>
      AZURE_WEBAPP_PACKAGE_PATH: '.\**\*.zip'
      AZURE_WEBAPP_PUBLISH_USERNAME: <发布用户名>
      AZURE_WEBAPP_PUBLISH_PASSWORD: <发布密码>
    jobs:
      build-and-deploy:
        runs-on: windows-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v2
          - name: Setup Node.js 12.x
            uses: actions/setup-node@v1
            with:
              node-version: '12.x'
          - name: npm install, build, and test
            run: |
              npm install
              npm run build --if-present
              npm test --if-present
          - name: Upload artifact for deployment job
            uses: actions/upload-artifact@v2
            with:
              name: node-app
              path: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
          - name: 'Deploy to Azure WebApp'
            uses: azure/webapps-deploy@v2
            with:
              app-name: ${{ env.AZURE_WEBAPP_NAME }}
              slot-name: <你的部署槽名称>  # 可选,将此行注释掉以使用生产插槽
              publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
              package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
    
  3. 将workflow文件提交到仓库中,并创建名为“AZURE_WEBAPP_PUBLISH_PROFILE”的secret,值是从Azure应用服务控制台中下载的发布配置文件。

    image-20211020091624467

  4. 推送代码,Github Action将自动构建和部署应用程序。

总结

使用Github Action和Azure应用服务可以实现自动化持续部署,并且可以轻松地管理和维护应用程序。在实际应用中,我们可以使用其他工具替代或补充Github Action,例如Jenkins和TeamCity等CI/CD工具,以满足不同的需求。