1+ name : Release-Notes
2+ on :
3+ workflow_dispatch :
4+ inputs :
5+ branch :
6+ description : ' The branch to generate release notes on'
7+ required : true
8+ schedule :
9+ - cron : " 0 0/12 * * *"
10+
11+ jobs :
12+
13+ active-branches :
14+ runs-on : ubuntu-latest
15+ env :
16+ TASK_BRANCH : ${{ github.event.inputs.branch }}
17+
18+ steps :
19+ - id : dump-branches
20+ name : get branches from artifacts api
21+ if : ${{ ! github.event.inputs.branch }}
22+ run : |
23+ curl -s "https://artifacts-api.elastic.co/v1/branches" | jq "[ .branches[] | select(. | startswith(\"6\") | not) ]" --compact-output
24+ curl -s "https://artifacts-api.elastic.co/v1/branches" | jq "[ .branches[] | select(. | startswith(\"6\") | not) ]" --compact-output > branches.json
25+
26+ - id : set-matrix
27+ name : conditional command
28+ run : |
29+ if [[ "${{ github.event.inputs.branch }}" != "" ]]; then
30+ echo "::set-output name=matrix::['${{ github.event.inputs.branch }}']"
31+ elif [[ -f "branches.json" ]]; then
32+ echo "::set-output name=matrix::$(cat branches.json)"
33+ else
34+ echo "::set-output name=matrix::[]"
35+ fi
36+ outputs :
37+ matrix : ${{ steps.set-matrix.outputs.matrix }}
38+
39+ release-notes :
40+ name : Generate
41+ needs : active-branches
42+ runs-on : ubuntu-latest
43+ strategy :
44+ fail-fast : false
45+ matrix :
46+ branch : ${{ fromJson(needs.active-branches.outputs.matrix) }}
47+ steps :
48+ - uses : actions/checkout@v2
49+ with :
50+ ref : " ${{ matrix.branch }}"
51+
52+ - uses : actions/setup-dotnet@v1
53+ with :
54+ dotnet-version : ' 5.0.100'
55+ - name : Install dotnet-script
56+ run : dotnet tool install release-notes --tool-path dotnet-tool
57+
58+ - name : Find versions for branch
59+ id : versions
60+ run : |
61+ readarray -t lines < <(dotnet-tool/release-notes "${{ github.event.organization.login }}" "${{ github.event.repository.name }}" current-version --query "${{ matrix.branch }}" --version 0.0.1 --token ${{ secrets.GITHUB_TOKEN }} --releasetagformat VERSION)
62+ echo "::set-output name=current::$(echo ${lines[0]})"
63+ echo "::set-output name=next::$(echo ${lines[1]})"
64+ echo ${lines[@]}
65+
66+ - name : Generate release notes
67+ run : |
68+ dotnet-tool/release-notes "${{ github.event.organization.login }}" "${{ github.event.repository.name }}" --version ${{ steps.versions.outputs.next }} --token ${{ secrets.GITHUB_TOKEN }} --format asciidoc --output docs/release-notes
69+ rm dotnet-tool/release-notes
70+ git status
71+ - name : " PR ${{ matrix.branch }}"
72+ # fixate to known release.
73+ uses : peter-evans/create-pull-request@052fc72b4198ba9fbc81b818c6e1859f747d49a8
74+ with :
75+ token : ${{ secrets.GITHUB_TOKEN }}
76+ branch : " fix/${{ matrix.branch }}/release-notes"
77+ base : " ${{ matrix.branch }}"
78+ delete-branch : true
79+ commit-message : " [release-notes] Release notes ${{ steps.versions.outputs.next }} on ${{ matrix.branch }} branch"
80+ title : ' [release-notes] Release notes ${{ steps.versions.outputs.next }} on ${{ matrix.branch }} branch'
81+ body : |
82+ Release notes ${{ steps.versions.outputs.next }} on ${{ matrix.branch }} branch
83+ labels : " infra,code-gen"
0 commit comments