小编Dan*_*llo的帖子

使用语义版本控制或 Lerna Publish 从 CI/CD 部署时如何确保 Master 和 Dev 分支保持同步

设置

我有几个 gitlab 存储库,其中一般设置涉及一个master分支、一个stage(预发布)分支和一个dev分支。

所有 3 个分支的推送权限均被禁用。

工作流程是从dev分支中派生任何修补程序、错误修复和功能。当您对发布感到满意时,您将向 提交合并请求dev。最终,当内部准备好稳定的构建时dev;将为该分支提交合并请求stage。最后,当您对预发布感到满意时,您将提交分支的合并请求master

我配置了 CI/CD,以便通过自动生成文件从master和分支自动执行测试、构建和部署。分支部署到 UAT s3 Bucket 并部署到生产 s3 Bucket。stageCHANGELOG.mdstagemaster

部署是通过Semantic Versioning 2.0.0它来处理的,它负责更新版本、生成变更日志和部署。

我有一个与上面描述的类似的设置,除了它是一个 monorepo,所以我用来Lerna处理发布(部署)和{"conventionalCommits": true}复制Semantic Versioning 2.0.0的行为。我在 monorepo 中使用独立版本控制。

和 的Semantic Versioning 2.0.0设置都Lerna强制master分支始终位于 和 分支之后或等于stagedev分支;并且stage分支始终位于分支后面或等于dev分支,就像级联效应一样。

dev>= stage …

semantic-versioning gitlab gitlab-ci lerna conventional-commits

7
推荐指数
1
解决办法
1668
查看次数

AWS - 安全组是否足够,或者是否需要私有和公有子网?

假设我有一个 Web 服务器,它是一个 EC2 实例和一个 RDS。

EC2实例与RDS通信。

为了安全起见,我可以在应用程序负载均衡器后面设置此设置,并使用安全组仅允许入站流量通过 ALB。ALB 将仅通过 HTTPS 与互联网通信。

在内部,我可以设置一个安全组,仅接受来自 ALB 安全组的传入流量。我会将此安全组附加到 EC2 实例。然后,我可以拥有另一个安全组,仅允许来自 EC2 实例的传入流量。该安全组将附加到 RDS。

EC2 实例的安全组将允许通过 HTTPS 的出站流量用于更新、下载软件包等。

根据我对此设置如何工作的(有限)理解,与 RDS 的通信必须严格从 EC2 实例进行,并且与 EC2 实例的入站通信必须严格从 ALB 进行,ALB 配置为仅接受通过 SSL 的请求。

从安全性角度来说,这样的设置安全吗?

运营这样的机构会存在哪些风险?

配置私有和公共子集(如此处所示)有什么好处(如果有的话)?

amazon-ec2 amazon-web-services aws-security-group aws-application-load-balancer

2
推荐指数
1
解决办法
932
查看次数

List.orderBy 陷入无限循环

我有一个List<Expense> myListwhere 费用包含 2 个字段: decimal Amount和一个Status ItemStatus. 状态是enum {Paid, DueSoon, DueToday, Overdue, Unpaid}.

我试图按升序或降序对列表进行排序,但是Status.Unpaid需要始终以升序或降序出现在最后。

myList.Sort((x, y) => comparer.Compare(x.ItemStatus, y.ItemStatus))与我的比较器一起使用效果很好。

但是,在对列表进行排序后,ItemStatus我还想对列表进行排序Amount。所以我决定使用myList = myList.OrderBy(x => x.ItemStatus, comparer).ThenBy(x => x.Amount).ToList()它导致某个地方的无限循环。

当我.ThenBy()完全删除该方法时,无限循环仍然存在。

我在比较器中添加了一个静态计数器来尝试调试,该OrderBy()方法进入无限循环之前在30 个费用列表中使用了比较器 90 次。

这是我的比较器:

class StatusComparer : IComparer<Status>
{
    public bool IsAscending { get; private set; } = true;

    public StatusComparer(bool isAscending)
    {
        IsAscending = isAscending; …
Run Code Online (Sandbox Code Playgroud)

c# infinite-loop visual-studio

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