protected override async Task <IAction[]> RefreshActions()
        {
            var head = await Designer.GetHeadSha();

            var actions = new List <IAction> ();

            var statuses = (await Designer.GetLatestStatuses(head, "VSIX-")).ToArray();

            statuses = statuses.Where(t => t.State == Octokit.CommitState.Success).ToArray();

            foreach (var repoWithExternals in new [] { VisualStudio })
            {
                // Only bump when we have 4 successful VSIX statuses
                var externalFile = await repoWithExternals.GetFileContent(".external");

                if (statuses.Length == 4 && !externalFile.Contains(head))
                {
                    actions.Add(new BumpExternalAction(repoWithExternals, Designer, Groupings.BumpDirect));
                    actions.Add(new BumpExternalAction(repoWithExternals, Designer, Groupings.BumpPullRequest)
                    {
                        AllowPostActions = allowExternalActions
                    });
                }
            }

            statuses = (await Designer.GetLatestStatuses(head, "MPACK-")).ToArray();
            statuses = statuses.Where(t => t.State == Octokit.CommitState.Success).ToArray();

            // Only bump when we have 4 successful MPACK statuses
            var mdaddinsFile = await MDAddins.GetFileContent("external-addins/designer/source.txt");

            var urls = statuses.Select(t => t.TargetUrl.ToString()).OrderBy(t => t).ToList();

            if (urls.Count == 5)
            {
                urls.RemoveAt(2);
            }

            var newFile = string.Join("\n", urls);

            if (urls.Count == 4 && mdaddinsFile != newFile)
            {
                actions.Add(new BumpMDAddinsMPackAction(MDAddins, Designer, Groupings.BumpDirect));
                actions.Add(new BumpMDAddinsMPackAction(MDAddins, Designer, Groupings.BumpPullRequest)
                {
                    AllowPostActions = allowExternalActions
                });
            }

            return(actions.ToArray());
        }
Ejemplo n.º 2
0
        protected override async Task <IAction[]> RefreshActions()
        {
            var head = await Designer.GetHeadSha();

            var actions = new List <IAction> ();

            // Visual Studio external repository isn't maintained anymore

            /*var statuses = (await Designer.GetLatestStatuses (head, "VSIX-")).ToArray ();
             * statuses = statuses.Where (t => t.State == Octokit.CommitState.Success).ToArray ();
             *
             * foreach (var repoWithExternals in new [] { VisualStudio }) {
             *      // Only bump when we have 4 successful VSIX statuses
             *      var externalFile = await repoWithExternals.GetFileContent (".external");
             *      if (statuses.Length == 4 && !externalFile.Contains (head)) {
             *              actions.Add (new BumpExternalAction (repoWithExternals, Designer, Groupings.BumpDirect));
             *              actions.Add (new BumpExternalAction (repoWithExternals, Designer, Groupings.BumpPullRequest) { AllowPostActions = allowExternalActions });
             *      }
             * }*/

            var statuses = (await Designer.GetLatestStatuses(head, "MPACK-")).ToArray();

            statuses = statuses.Where(t => t.State == Octokit.CommitState.Success).ToArray();

            // Only bump when we have the right number of successful MPACK statuses
            var olderBranches = new HashSet <string> {
                "release-8.0", "release-8.1"
            };
            int expectedUrlsCount = olderBranches.Contains(MDAddins.BranchName) ? 4 : 5;
            var mdaddinsFile      = await MDAddins.GetFileContent("external-addins/designer/source.txt");

            var urls = statuses.Select(t => t.TargetUrl.ToString()).OrderBy(t => t).ToList();

            var newFile = string.Join("\n", urls);

            if (urls.Count == expectedUrlsCount && mdaddinsFile != newFile)
            {
                actions.Add(new BumpMDAddinsMPackAction(MDAddins, Designer, Groupings.BumpDirect));
                actions.Add(new BumpMDAddinsMPackAction(MDAddins, Designer, Groupings.BumpPullRequest)
                {
                    AllowPostActions = allowExternalActions
                });
            }

            return(actions.ToArray());
        }