标签: bitbucket-pipelines

bitbucket-pipelines.yml 文件中的部署环境“暂存”在管道中多次出现

我正在尝试让 Bitbucket Pipelines 执行定义部署区域的多个步骤。当我这样做时,我收到错误

配置错误 bitbucket-pipelines.yml 文件中的部署环境“暂存”在管道中多次出现。请参阅我们的文档了解有效环境及其顺序。

据我了解,部署变量必须逐步发生。

我如何设置此示例管道文件才不会遇到该错误?

image: ubuntu:18.04

definitions:
    steps:
        - step: &build
            name: npm-build
            condition:
                changesets:
                    includePaths:
                        # Only run npm if anything in the build directory was touched
                        - "build/**"
            image: node:14.17.5
            script:
              - echo 'build initiated'
              - cd build
              - npm install
              - npm run dev
              - echo 'build complete'
            artifacts:
              - themes/factor/css/**
              - themes/factor/js/**
        - step: &deploychanges
            name: Deploy_Changes
            deployment: Staging
            script:
              - echo 'Installing server dependencies'
              - apt-get update -q
              - apt-get …
Run Code Online (Sandbox Code Playgroud)

continuous-integration bitbucket bitbucket-pipelines

12
推荐指数
3
解决办法
2万
查看次数

将参数发送到 yml 锚点以获取 bitbucket-pipelines.yml 中的步骤

当我使用 bitbucket 管道调用锚点时,我想发送参数

这是我正在使用的文件,我必须调用,after-script因为我需要推送到某个 S3 存储桶

definitions:
  steps:
    - step: &node-build
        name: Build React app
        image: node:lts-alpine
        script:
          - npm install --no-optional
          - npm run build
        artifacts:
          - build/**
    - step: &aws-ecr-s3
        name: AWS S3 deployment
        image: amazon/aws-cli
        script:
          - aws configure set aws_access_key_id "${AWS_KEY}"
          - aws configure set aws_secret_access_key "${AWS_SECRET}"

pipelines:
  branches:
    master:
      - step: *node-build
      - step:
          <<: *aws-ecr-s3
          after-script:
            - aws s3 cp ./build s3://my-app-site-dev --recursive
    staging:
      - step: *node-build
      - step:
          <<: *aws-ecr-s3
          after-script: …
Run Code Online (Sandbox Code Playgroud)

yaml arguments bitbucket amazon-web-services bitbucket-pipelines

12
推荐指数
1
解决办法
3105
查看次数

开玩笑的问题。FakeTimers:调用clearTimeout来清除本机计时器而不是此库创建的计时器

Node.js 从版本 14 更新到版本 16 后,我们在 bitbucket CI/CD 管道上进行了大量失败的测试。本地测试通过。

似乎是计时器中的问题,因为第一条错误消息显示:“FakeTimers:调用clearTimeout来清除本机计时器而不是此库创建的计时器。要自动清理本机计时器,请使用shouldClearNativeTimers“。之后,一系列测试都失败了。

在为笑话添加“--runInBand”参数后,它解决了问题,但这不是一个理想的方法。

将不胜感激任何帮助。

node.js jestjs bitbucket-pipelines cicd

12
推荐指数
1
解决办法
8019
查看次数

Jest 测试卡在 bitbucket 管道上,没有任何错误

我们在 CI 中使用 Bitbucket 管道进行测试,我们的应用程序是 NestJS,并使用 Jest 测试了 Typescript。

我们总是让所有测试都运行,但是从现在开始的几天(2022 年 5 月)测试在一些套装后会卡住,测试卡住的套件是相当随机的。

测试不会失败,我们没有任何内存警告或其他任何东西,它只是卡在管道上。我们需要停止管道,因为它永远不会停止。

不幸的是,我们没有发现任何错误,需要进一步调查。

我们可以做什么来检查更多细节?

bitbucket jestjs bitbucket-pipelines nestjs ts-jest

12
推荐指数
1
解决办法
4233
查看次数

.NET Core BitBucket管道构建失败 - 当我有.csproj时想要project.json

我在发布之前正在搜索,但似乎VS2017停止使用project.json而是使用.csproj文件,因此当我尝试在TFS或BitBucket上运行构建时,我得到失败,因为构建正在寻找project.json.具体来说,BitBucket管道会告诉我它无法在.Net Core项目中找到project.json.在我可以简单地运行构建之前没有问题.

我是所有这一切的新手所以这是我必须改变或设置在.yml中的东西吗?或者这是BitBucket必须在他们的.Net Core管道中改变的东西?

感谢您的帮助.

bitbucket schema.yml project.json asp.net-core bitbucket-pipelines

10
推荐指数
2
解决办法
1224
查看次数

将额外命令从 bitbucket-piplines.yml 传递到 docker 镜像

mysql:5.7尝试使用 Bitbucket Pipelines设置 docker 映像的默认字符集和排序规则,文档提到得有点含糊:

如果需要进一步配置底层数据库引擎,请参考Docker Hub官方镜像

bitbucket 文档发送给您的这个页面表明这是可能的......至少通过 docker:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collat​​ion-server=utf8mb4_unicode_ci

所以我的问题是如何传递这些参数:--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

我见过人们command:在 YML 中使用 bitbucket-pipelines 参数,但是 bitbucket 上的管道配置编辑器说它在那里无效:

definitions:
  services:
    mysql:
      image: mysql:5.7
      command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
      ports:
        - "3306:3306"
      variables:
        MYSQL_DATABASE: $MY_DATABASE
        MYSQL_ROOT_PASSWORD: $MY_PW
Run Code Online (Sandbox Code Playgroud)

mysql bitbucket docker bitbucket-pipelines

10
推荐指数
1
解决办法
734
查看次数

Bitbucket:显示标记为秘密的变量的值

对于我的一个存储库,我需要查看我设置为部署的安全属性的值(按照https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/#Secured-中所述创建)变量)。有什么方法可以检索那里存储的值吗?

由于它的所有出现都被屏蔽(https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/#Secured-variable-masking),我有写一个值的想法,我怀疑我保存了在那里,使用“回声”。如果我看到它在日志中被变量替换,我就知道它是该变量的秘密值 - 但这会将其暴露给我的项目的历史记录。

还有其他想法吗?

security bitbucket bitbucket-pipelines

10
推荐指数
1
解决办法
4319
查看次数

有没有一种简单的方法可以在Bitbucket Pipelines Docker容器中更改为非root用户?

Bitbucket Pipelines使用Docker容器来执行任务,默认情况下Docker容器以root身份运行.这是NPM生命周期脚本的问题,因为NPM在运行脚本时尝试降级其权限.

当执行postinstall脚本,NPM抛出一个错误,它cannot run in wd %s %s (wd=%s).最简单的解决方案是使用--unsafe-perm标志运行npm install ,但我不喜欢这种方法.

Docker 编写Dockerfiles 的最佳实践表明:

如果服务可以在没有权限的情况下运行,请使用USER更改为非root用户.

配置典型的Docker容器时,我会创建一个新的非root用户并以此用户身份运行我的npm脚本.

阅读Pipelines文档后,我找不到任何与Docker的USER命令等效的内容.我也许能使用useradd,chown并且su(没有测试尚未),但有一个简单的解决方案?

不幸的是增加useradd,chownsubitbucket-pipelines.yml脚本部分管道破裂,并导致失败的repo:push网络挂接.

image: node:6.2

pipelines:
  default:
    - step:
        script:
          - useradd --user-group --create-home --shell /bin/false node
          - chown -R node: /opt/atlassian/bitbucketci/agent/build
          - su -s /bin/sh -c "npm install" node
          - su -s /bin/sh -c …
Run Code Online (Sandbox Code Playgroud)

continuous-integration bitbucket node.js docker bitbucket-pipelines

9
推荐指数
1
解决办法
1472
查看次数

在Bitbucket管道的各个步骤中使变量可见吗?

我想在两个步骤中共享一个变量。

我将其定义为:

- export MY_VAR="FOO-$BITBUCKET_BUILD_NUMBER"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在其他步骤中打印它时:

- echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)

它是空的。

我如何共享这样的变量?

environment-variables bitbucket-pipelines

9
推荐指数
4
解决办法
2796
查看次数

Bitbucket / 我看不到管道中的工件

我在 CI 环境中运行 e2e 测试,但我看不到管道中的工件。

bitbucket-pipelines.yml:

image: cypress/base:10
options: max-time: 20
pipelines: 
  default: 
    -step: 
        script: 
            - npm install 
            -npm run test 
        artifacts: 
            -/opt/atlassian/pipelines/agent/build/cypress/screenshots/* 
            -screenshots/*.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

也许我输入了错误的路径,但我不确定。

有人知道我做错了什么吗?

continuous-integration artifact bitbucket-pipelines

9
推荐指数
1
解决办法
1万
查看次数