gaelcolas / gaelcolas/Sampler

Task to create changelog PR fails if commit has more than one commit

Open
#440 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
PowerShell
Stars
243
Forks
46
Avg merge
1h 41m
Merged PRs (30d)
1

Description

### Problem description

When the same commit hadhaveseveral tags on it. Example for DFSDsc

```
PS > git tag -l --points-at 89db2baa582d6774e5cc5ac2096eabf5ecf29dd2
5.0.0-preview0001
v4.5.0-preview0002
v5.0.0
v5.0.0-preview0001
```

### Verbose logs

```text
2023-09-01T07:01:49.1303439Z ##[section]Starting: Send Changelog PR
2023-09-01T07:01:49.1309842Z ==============================================================================
2023-09-01T07:01:49.1310004Z Task : PowerShell
2023-09-01T07:01:49.1310082Z Description : Run a PowerShell script on Linux, macOS, or Windows
2023-09-01T07:01:49.1310234Z Version : 2.226.2
2023-09-01T07:01:49.1310323Z Author : Microsoft Corporation
2023-09-01T07:01:49.1310522Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2023-09-01T07:01:49.1310665Z ==============================================================================
2023-09-01T07:01:49.3031161Z Generating script.
2023-09-01T07:01:49.3040605Z ========================== Starting Command Output ===========================
2023-09-01T07:01:49.3068768Z [command]/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command . '/home/vsts/work/_temp/b69bf612-bdf9-47a9-bd09-8510c9e29132.ps1'
2023-09-01T07:01:49.7857182Z [pre-build] Starting Build Init
2023-09-01T07:01:49.8031734Z [pre-build] Prepending '/home/vsts/work/1/s/output/RequiredModules' folder to PSModulePath
2023-09-01T07:01:49.8402092Z [pre-build] Prepending '/home/vsts/work/1/s/output' folder to PSModulePath
2023-09-01T07:01:49.8472876Z [build] Starting build with InvokeBuild.
2023-09-01T07:01:50.0448489Z [build] Parsing defined tasks
2023-09-01T07:01:50.0476336Z [build] Loading Configuration from /home/vsts/work/1/s/build.yaml
2023-09-01T07:01:51.2213307Z Importing tasks from module Sampler
2023-09-01T07:01:51.3621010Z Loading Build-Module.ModuleBuilder.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3621688Z Loading ChocolateyPackage.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3625625Z Loading Clean.ModuleBuilder.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3626716Z Loading Create_Changelog_Branch.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3627554Z Loading Create_Release_Git_Tag.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3627960Z Loading DeployAll.PSDeploy.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3628239Z Loading DscResource.Test.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3628477Z Loading generateHelp.PlatyPS.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3628724Z Loading GuestConfig.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3629165Z Loading Invoke-Pester.pester.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3629411Z Loading JaCoCo.coverage.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3640723Z Loading release.module.build.Sampler.ib.tasks...
2023-09-01T07:01:51.3641790Z Loading Set-SamplerTaskVariable...
2023-09-01T07:01:51.3642636Z Loading SetPsModulePath.build.Sampler.ib.tasks...
2023-09-01T07:01:51.7503438Z Importing tasks from module Sampler.GitHubTasks
2023-09-01T07:01:52.2806821Z Loading New-Release.GitHub.build.Sampler.GitHubTasks.ib.tasks...
2023-09-01T07:01:52.4164158Z Importing tasks from module DscResource.DocGenerator
2023-09-01T07:01:52.6457022Z Loading Task.Generate_Conceptual_Help...
2023-09-01T07:01:52.6461336Z Loading Task.Generate_Wiki_Content...
2023-09-01T07:01:52.6461976Z Loading Task.Publish_GitHub_Wiki_Content...
2023-09-01T07:01:52.7352284Z Adding Workflow from configuration:
2023-09-01T07:01:52.7452416Z +-> pack
2023-09-01T07:01:52.7489860Z +-> hqrmtest
2023-09-01T07:01:52.7512624Z +-> .
2023-09-01T07:01:52.7571448Z +-> publish
2023-09-01T07:01:52.7597823Z +-> build
2023-09-01T07:01:52.7631320Z +-> test
2023-09-01T07:01:52.7639184Z [build] Executing requested workflow: Create_ChangeLog_GitHub_PR
2023-09-01T07:01:52.7928012Z Build Create_ChangeLog_GitHub_PR /home/vsts/work/1/s/build.ps1
2023-09-01T07:01:52.7940523Z Redefined task '.'.
2023-09-01T07:01:52.8165814Z
2023-09-01T07:01:52.8166645Z ===============================================================================
2023-09-01T07:01:52.8197251Z  CREATE CHANGELOG GITHUB PR
2023-09-01T07:01:52.8505771Z 
2023-09-01T07:01:52.8506657Z -------------------------------------------------------------------------------
2023-09-01T07:01:52.8513060Z  /Create_ChangeLog_GitHub_PR
2023-09-01T07:01:52.8513875Z  /home/vsts/work/1/s/output/RequiredModules/Sampler.GitHubTasks/0.3.4/tasks/New-Release.GitHub.build.ps1:181
2023-09-01T07:01:52.8514389Z
2023-09-01T07:01:52.9025652Z Project Name = 'DFSDsc'
2023-09-01T07:01:52.9327997Z Source Path = '/home/vsts/work/1/s/source'
2023-09-01T07:01:52.9414187Z Output Directory = '/home/vsts/work/1/s/output'
2023-09-01T07:01:52.9426848Z Release Notes path = '/home/vsts/work/1/s/output/ReleaseNotes.md'
2023-09-01T07:01:52.9448560Z Built Module Subdirectory = '/home/vsts/work/1/s/output/'
2023-09-01T07:01:52.9472052Z Module Manifest Path (src) = '/home/vsts/work/1/s/source/DFSDsc.psd1'
2023-09-01T07:01:52.9529368Z Versioned Output Directory = 'True'
2023-09-01T07:01:52.9652146Z Built Module Manifest = '/home/vsts/work/1/s/output/DFSDsc/5.0.0/DFSDsc.psd1'
2023-09-01T07:01:52.9707687Z Built Module Base = '/home/vsts/work/1/s/output/DFSDsc/5.0.0'
2023-09-01T07:01:52.9891881Z Module Version = '5.0.0'
2023-09-01T07:01:52.9918140Z Module Version Folder = '5.0.0'
2023-09-01T07:01:52.9933236Z Pre-release Tag = ''
2023-09-01T07:01:53.0006936Z Built Module Root Script = ''
2023-09-01T07:01:53.0048644Z PSModulePath = '/home/vsts/work/1/s/output;
2023-09-01T07:01:53.0049659Z /home/vsts/work/1/s/output/RequiredModules;
2023-09-01T07:01:53.0050145Z /home/vsts/.local/share/powershell/Modules;
2023-09-01T07:01:53.0056359Z /usr/local/share/powershell/Modules;
2023-09-01T07:01:53.0060279Z /opt/microsoft/powershell/7/Modules;'
2023-09-01T07:01:53.0065382Z
2023-09-01T07:01:53.0386853Z Changelog Path = '/home/vsts/work/1/s/CHANGELOG.md'
2023-09-01T07:01:53.0485234Z  ...Set GitHubFilesToAdd to CHANGELOG.md
2023-09-01T07:01:53.0519033Z  ...Set GitHubConfigUserName to dscbot
2023-09-01T07:01:53.0573990Z  ...Set GitHubConfigUserEmail to dsccommunity@outlook.com
2023-09-01T07:01:53.0623899Z  ...Set UpdateChangelogOnPrerelease to False
2023-09-01T07:01:53.3294430Z From https://github.com/dsccommunity/DFSDsc
2023-09-01T07:01:53.3295474Z * branch main -> FETCH_HEAD
2023-09-01T07:01:53.3474325Z HEAD is up to date.
2023-09-01T07:01:53.3620708Z git rev-parse origin/main
2023-09-01T07:01:53.3820984Z git tag -l --points-at 89db2baa582d6774e5cc5ac2096eabf5ecf29dd2
2023-09-01T07:01:53.3967733Z 5.0.0-preview0001|v4.5.0-preview0002|v5.0.0|v5.0.0-preview0001
2023-09-01T07:01:53.4022388Z Updating the ChangeLog for release 5.0.0-preview0001 v5.0.0
2023-09-01T07:01:53.4023283Z Creating branch updateChangelogAfter5.0.0-preview0001 v5.0.0
2023-09-01T07:01:53.4132645Z fatal: 'updateChangelogAfter5.0.0-preview0001 v5.0.0' is not a valid branch name
2023-09-01T07:01:53.4149475Z Updating Changelog file
2023-09-01T07:01:53.5451560Z Error trying to create ChangeLog Pull Request. Ignoring.
2023-09-01T07:01:53.5452469Z  No changes detected in current release, exiting.
2023-09-01T07:01:53.5559879Z Done /Create_ChangeLog_GitHub_PR 00:00:00.7384084
2023-09-01T07:01:53.5692838Z Build succeeded. 1 tasks, 0 errors, 0 warnings 00:00:03.6110094
2023-09-01T07:01:53.7308104Z ##[section]Finishing: Send Changelog PR
```
```

### How to reproduce

This code failed since it found a release tag (v5.0.0) but since the command returned more than one tag it got the wrong name for the branch so it failed there and stopped.

### Expected behavior

Not to fail the task.

### Current behavior

Task throws error.

### Suggested solution

This code need to have logic to handle multiple tags and understand that the highest release tag is more important than any preview tag.

https://github.com/gaelcolas/Sampler/blob/a14049c5241e75f52270d292c026d67dac173a92/.build/tasks/Create_Changelog_Branch.build.ps1#L182-L206

### Operating system the target node is running

```text
n/a
```

### PowerShell version and build the target node is running

```text
n/a
```

### Module version used

```text
latest
```

Contributor guide

Open the contributing guide

Research direction

Start with .build/tasks/Create_Changelog_Branch.build.ps1 at lines 182-206 and inspect how the tags returned by git tag -l --points-at are used to form the branch name. Reproduce the case with multiple release and preview tags from the issue. Done means the changelog task does not fail and selects the highest release tag over preview tags.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, powershell
Domain
devops, release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.