由于凭证超时,我在可靠地运行云构建触发器时遇到问题。
我已在 Google Cloud Build 中设置了 Google Cloud DevOps 项目,并使用我的私有 GitHub 存储库对触发器进行了身份验证。我的私有 GitHub 存储库具有 Cloud Build GitHub 应用程序集成。
我的 Cloud Build 触发器工作了一段时间,无论自动运行还是手动运行都运行良好。
几个小时后,我开始在触发器执行中遇到错误:
...
FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com...
Run Code Online (Sandbox Code Playgroud)
为了尝试解决此问题,我使用 Cloud Build 触发器页面断开连接,然后重新连接并使用我的私有 GitHub 存储库重新进行身份验证。存储库管理页面显示重新身份验证成功,但在运行触发器时仍然收到“无效的用户名或密码”错误。
我对私有存储库身份验证的工作方式有什么遗漏吗?我是否缺少其他自动刷新 Cloud Build 身份验证的设置?
我已遵循作业和条件工作流程中的条件步骤中描述的指南,并为我的 CircleCI 管道编写了以下代码。
version: 2.1
workflows:
version: 2.1
workflowone:
when:
condition: false
jobs:
- samplejob:
workflowtwo:
when:
condition: true
jobs:
- jobone
jobs:
samplejob:
docker:
- image: buildpack-deps:stable
steps:
- run:
name: Sample Job in WF 1
command: |
echo "This job is in workflowone and the workflow should not run"
jobone:
docker:
- image: buildpack-deps:stable
steps:
- run:
name: Sample Job in WF 2
command: |
echo "This job is in workflowtwo and the workflow should run"
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,输出不是预期的。第一个工作流不应运行,因为条件为假。当管道触发时,两个工作流程都开始运行。谁能指出这里缺少的部分吗?
我正在尝试基于 Azure DevOps 中的旧存储库在 Azure DevOps 中创建新存储库,但传输不起作用。
新的存储库属于新的项目和组织。当我创建它并转到 Repos 时,我看到了以下内容:
似乎我有两种选择将旧存储库导入到此存储库:
当我尝试从命令行推送现有存储库时,我将其提供的命令复制并粘贴到本地计算机上项目目录的根目录中的命令行 (PowerShell)(其中 .git 文件夹和 .sln文件是)。命令是:
git remote add origin https://holland-and-barnes@dev.azure.com/holland-and-barnes/Holland%20and%20Barnes/_git/Holland%20and%20Barnes
Run Code Online (Sandbox Code Playgroud)
运行这个命令,它告诉我:
usage: git remote add [<options>] <name> <url>
-f, --fetch fetch the remote branches
--tags import all tags and associated objects when fetching
or do not fetch any tag at all (--no-tags)
-t, --track <branch> branch(es) to track
-m, --master <branch>
master branch
--mirror[=(push|fetch)]
set up remote as a mirror to push to or fetch from
Run Code Online (Sandbox Code Playgroud)
...进而: …
我们有很多互联网服务,是对每个服务使用 alb 还是对所有使用指向目标组的侦听器规则的单个 alb 进行考虑,有哪些考虑因素。
这些服务有自己的集群/目标组,具有不同的功能和不同的 url。
一项服务的峰值会影响其他服务吗?它会成为单点故障吗?成本角度?可观察性、监控、日志 ? 便于管理?
来自MS文档: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/build/maven ?view=azure-devops
mavenFeedAuthenticate 对内置 Maven 源进行身份验证 (必需)自动对来自 Azure Artifacts 的 Maven 源进行身份验证。如果未使用内置 Maven 源,请取消选择此选项以加快构建速度。默认值: false 参数别名: mavenAuthenticateFeed
但每次我想使用来自 Azure Artifacts 的 Maven feed 并通过将 mavenFeedAuthenticate 设置为 true 来尝试此操作时,我总是得到 401(未经授权)。
有人可以告诉我这个值的正确用法吗?
我正在尝试找到一种方法,以编程方式在 GCP 中的 OAuth 2.0 客户端 ID 中添加用于授权重定向 URI 的 URIS,无论是 python 包还是 gcloud 。尝试查找文档但找不到任何 . 有人可以告诉我是否有任何方法可以做到这一点,而不是手动添加。
请在 GCP 中找到我想要添加网址的位置。
我试图仅在更改的 python 文件上运行 pylint,但我的构建始终失败。我已经通过 git diff 提取了更改的文件并将它们保存在变量中,但是当我将变量注入 pylint 调用时,它失败了。然而,它对于硬编码的文件名工作得很好。这是我的 yaml:
pylint:
stage: test
before_script:
- pip install pylint pylint-exit anybadge
script:
- echo CI_COMMIT_SHA=${CI_COMMIT_SHA}
- echo CI_MERGE_REQUEST_TARGET_BRANCH_NAME=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
- git fetch origin ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
- FILES=$(git diff --name-only ${CI_COMMIT_SHA} origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} | grep '\.py'$)
- echo "Changed files are $FILES"
- pylint --output-format=text $(find -type f -name "$FILES" ! -path "**/.venv/**") | tee ./pylint/pylint.log || pylint-exit $?
- PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
- anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE …Run Code Online (Sandbox Code Playgroud) 我试图根据逻辑获取一些值来形成我的点网应用程序的版本号。
我正在使用 Azure DevOps 并创建了一个管道 (YAML)。在管道中,我创建了几个变量,它们通过使用一些计算逻辑来获取值。下面是代码。
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
old_date: '20210601'
latest_date: '20210603'
PSI: ($(latest_date)-$(old_date))/56+1
totalsprints: '($(latest_date)-$(old_date))/14'
sprint: '$(totalsprints)%4+1'
majorversion: '2.'
dot: '.'
name: '$(majorversion)$(Year:yy)$(PSI)$(dot)$(sprint)$(dot)$(Date:MMdd)'
Run Code Online (Sandbox Code Playgroud)
上面的逻辑在 old_date 中设置了一个默认日期,从latest_date 中减去它并除以 56 以获得一些值。结果的下一个值是我们的 PSI。冲刺的计算方式相同。这样做是为了形成我们的 Dot Net 应用程序的版本号。像这样的“2.212.2.0312”
相同类型的逻辑也适用于 Jenkins 的 Groovy 脚本。但在这里,它显示 PSI = ($(latest_date)-$(old_date))/56+1 并且不评估任何内容。
感谢您对此的回应。
我有一个带有 NextJS 前端和 FeathersJS/Node 后端的项目。这两个应用程序/代码库都是单独的存储库。我想开始使用 Cypress 进行 E2E 测试,但我不确定在我的设置中执行此操作的最佳方法是什么。理想情况下,测试将作为 CI 的一部分针对每个后端和前端更改运行。我目前正在为我的 CI 使用 GitHub 操作,我不确定这对我是否有帮助或伤害。
我看到有些人提到将 Cypress 放在自己的存储库中,并使用自己的 docker-compose 来处理前端和后端的旋转以运行测试。但是,我不明白这作为 CI 的一部分如何工作。预合并的新代码如何进入此存储库并作为 CI 的一部分运行?我认为这种方法会有很多问题。
我想到的一种方法是将 Cypress 作为前端 NextJS 应用程序的一部分,并让它针对后端的“暂存”或“测试”实例运行,该实例会随着每个新的后端部署而播种。这里的问题之一是,当后端发生变化时,测试将不会运行,但这不一定是问题,我想。
有什么想法吗?
devops ×10
azure ×3
azure-devops ×3
python ×2
aws-application-load-balancer ×1
circleci ×1
circleci-2.0 ×1
cypress ×1
gcloud ×1
git ×1
gitlab ×1
gitlab-ci ×1
kubectl ×1
kubernetes ×1
maven ×1
minikube ×1
next.js ×1
node.js ×1
oauth-2.0 ×1
pipeline ×1
pylint ×1
repository ×1
testing ×1
yaml ×1