简化部署:使用Azure静态Web应用程序的Bitbucket管道和Azure应用程序使用
#网络开发人员 #node #azure #bitbucketpipelines

在当今快节奏的软件开发环境中,有效,无缝地部署应用程序至关重要。在此博客文章中,我将引导您完成设置BitBucket管道的过程,以自动化使用JavaScript和Node.js构建的Web应用程序的部署到Azure static static Web应用程序和Azure App Service。

这是我简单的Bitbucket管道,用于构建和发布基于Nodejs的API,以及基于JS的浏览器到Azure static Web App

image: node:18

pipelines:
  default:
    - parallel:
        - step:
            name: Server - Build and Test
            caches:
              - node
            script:
              - cd server
              - npm install
              - echo 'Add test later'
        - step:
            name: Code linting
            script:
              - cd server
              - npm install eslint
              - echo 'Add eslint config file to server'
            caches:
              - node
  branches:
    master:
      - parallel:
          - step:
              name: Server Code:Build
              caches:
                - node
              script:
                - cd server
                - npm install
                - apt update && apt install zip
                # Exclude files to be ignored
                - zip -r app-wp-cloud-$BITBUCKET_BUILD_NUMBER.zip . -x *.git* bitbucket-pipelines.yml
              artifacts:
                - server/*.zip
          - step:
              name: Client Code:Build
              script:
                - cd client
                - npm ci
                - npm run build
              artifacts:
                - client/dist/**
              variables:
                - VITE_API_URL: $VITE_API_URL
                - VITE_AUTH_TOKEN: $VITE_AUTH_TOKEN

          - step:
              name: Security Scan
              script:
                # Run a security scan for sensitive data.
                # See more security tools at https://bitbucket.org/product/features/pipelines/integrations?&category=security
                - pipe: atlassian/git-secrets-scan:0.5.1
      - parallel:
          - step:
              name: Server Code:Deploy to Production
              trigger: manual
              script:
                - cd server
                - pipe: atlassian/azure-web-apps-deploy:1.0.1
                  variables:
                    AZURE_APP_ID: $AZURE_CLIENT_ID
                    AZURE_PASSWORD: $AZURE_CLIENT_SECRET
                    AZURE_TENANT_ID: $AZURE_TENANT_ID
                    AZURE_RESOURCE_GROUP: $AZURE_RESOURCE_GROUP
                    AZURE_APP_NAME: $AZURE_SERVER_APP_NAME
                    ZIP_FILE: server-$BITBUCKET_BUILD_NUMBER.zip
          - step:
              name: Client Code:Deploy to Production
              trigger: manual
              script:
                - pipe: microsoft/azure-static-web-apps-deploy:main
                  variables:
                    APP_LOCATION: '$BITBUCKET_CLONE_DIR/client/dist'
                    OUTPUT_LOCATION: ''
                    SKIP_APP_BUILD: 'true'
                    API_TOKEN: $deployment_token
  custom:
    client:
      - step:
          name: Client Code:Build
          script:
            - cd client
            - npm ci
            - npm run build
          artifacts:
            - client/dist/**
          variables:
            - VITE_API_URL: $VITE_API_URL
            - VITE_AUTH_TOKEN: $VITE_AUTH_TOKEN
      - step:
          name: Client Code:Deploy to test
          deployment: test
          script:
            - pipe: microsoft/azure-static-web-apps-deploy:main
              variables:
                APP_LOCATION: '$BITBUCKET_CLONE_DIR/client/dist'
                OUTPUT_LOCATION: ''
                SKIP_APP_BUILD: 'true'
                API_TOKEN: $deployment_token
                DEPLOYMENT_ENVIRONMENT: test

此Bitbucket管道配置定义了一系列用于构建,测试,绒毛和部署应用程序的服务器和客户端组件的步骤。这是主要部分的细分:

图像定义:管道首先定义用于运行管道步骤的Docker映像。在这种情况下,它使用节点:18映像。

默认步骤:默认情况下将对所有分支执行这些步骤。它包括用于构建和测试服务器的并行步骤以及执行代码伸缩。

特定于分支的步骤(主分支):这些步骤特定于主分支。它包括用于构建和测试服务器,构建客户端代码并执行安全扫描的并行步骤。它还包括用于部署到生产服务器并将客户端代码部署到生产的手动部署步骤。

自定义步骤(客户端分支):这些步骤是在自定义部分下定义的,仅针对名为client的特定分支执行。它包括构建和部署客户码到测试环境。

此管道配置演示了如何将Bitbucket管道与Azure Services集成在一起,以使JavaScript和Node.js应用程序自动化部署过程。它涵盖构建步骤,测试,代码伸缩,安全扫描以及对生产和测试环境的部署。确保用与项目相关的实际值替换占位符变量(例如$ azure_client_id,$ vite_api_url)。

有了该管道,您的部署过程变得更加高效和可靠,使您可以专注于构建出色的应用程序而不必担心部署复杂性。