使用Bitbucket管道构建dist并使用git推送构建以进行部署

时间:2018-10-18 13:31:56

标签: git bitbucket-pipelines

我正在尝试在Bitbucket管道中构建React应用,然后使用git push将其部署到生产服务器中。

当我将所有内容都放在一个步骤中时,这很好用,就像这样:

image: node

clone:
  depth: full
pipelines:
  default:
    - step:
        name: Build app
        caches:
          - node
        script:
          - yarn
          - yarn build
          - git config user.email "<email>"
          - git config user.name "<name>"
          - git config remote.origin.url <remote ssh>
          - git add .
          - git commit -m "Add build"
          - git push

但是,我想将构建过程和部署过程分为不同的步骤。稍后,我还将在构建步骤中添加测试。

这是我尝试过的:

image: node

clone:
  depth: full
pipelines:
  default:
    - step:
        name: Build app
        caches:
          - node
        script:
          - yarn
          - yarn build
    - step:
        name: Deploy to production
        deployment: production
        script:
          - git config user.email "<email>"
          - git config user.name "<name>"
          - git config remote.origin.url <remote ssh>
          - git add .
          - git commit -m "Add build"
          - git push

这可以通过,但不会对我的生产服务器产生任何影响(与上述第一种方法相反)。我认为这是因为新步骤将意味着一个新容器,因此该新容器将无法访问我在上一步中所做的构建。

我试图用人工制品解决这个问题,但无济于事。我似乎找不到从第一步到第二步的构建方法。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

执行的命令及其生成的文件不会在步骤之间保留下来,因此您将需要使用artifacts才能使第一步中yarn生成的文件仍然可用在第二步。因此,例如,如果您的yarn将文件写入项目根目录中的文件夹SELECT si.Id, si.AssetsName, si.Rate, si.Qty, SUM(so.QtyOut) AS QtyOut, COALESCE(si.Qty, 0) - SUM(so.QtyOut) AS Balance FROM dbo.StockIn si LEFT JOIN dbo.StockOut so ON so.Id = si.Id GROUP BY si.Id, si.AssetsName, si.Rate, si.Qty; 中,则管道将变为:

yarn-output