|
1 | 1 | # This workflow runs when a version tag is pushed. |
2 | 2 | # |
3 | | -# - Job 1: |
4 | | -# - Get new tag. |
5 | | -# - Build new release. |
6 | | -# - If release candidate tag: |
7 | | -# - Cut PR to merge files and create release/* branch. |
8 | | -# - Generate GitHub (pre-)release if build succeeds. |
9 | | -# - Upload wheel to GitHub (pre-)release if build succeeds. |
10 | | -# - If release tag: |
11 | | -# - Update CHANGELOG.md |
12 | | -# - Upload wheel to Test PyPi if build succeeds. (Future) |
13 | | -# - Test install from Test PyPi. (Future) |
14 | | -# - Upload wheel to PyPi if test install succeeds. (Future) |
| 3 | +# - Get new tag. |
| 4 | +# - Build new release. |
| 5 | +# - If release tag: |
| 6 | +# - Build release. |
| 7 | +# - Generate GitHub release if build succeeds. |
| 8 | +# - Upload wheel to GitHub release if build succeeds. |
| 9 | +# - Upload wheel to Test PyPi if build succeeds. (Future) |
| 10 | +# - Test install from Test PyPi. (Future) |
| 11 | +# - Upload wheel to PyPi if test install succeeds. (Future) |
15 | 12 | name: Push Version Tag Workflow |
16 | 13 |
|
17 | 14 | on: |
@@ -47,69 +44,33 @@ jobs: |
47 | 44 | pip install -U pip poetry twine |
48 | 45 | poetry build && twine check dist/* && echo "build_ok=1" >> $GITHUB_ENV |
49 | 46 |
|
50 | | - - name: Open release pull request |
51 | | - uses: peter-evans/create-pull-request@v3 |
52 | | - if: ${{ contains( steps.newversion.output.new_tag, 'rc' ) }} |
53 | | - with: |
54 | | - commit-message: "release: ${{ steps.newversion.outputs.new_version }}" |
55 | | - title: "release: ${{ steps.newversion.outputs.new_version }}" |
56 | | - body: "Please cut release ${{ steps.newversion.outputs.new_version }}" |
57 | | - branch: "release/${{ steps.newversion.outputs.new_version }}" |
58 | | - base: master |
59 | | - labels: release |
60 | | - |
61 | | - - name: Cut the pre-release |
62 | | - id: cutprerelease |
63 | | - if: ${{ contains( steps.newversion.output.new_tag, 'rc' ) && env.build_ok == 1 }} |
| 47 | + - name: Cut the release |
| 48 | + id: cutrelease |
| 49 | + if: ${{ !contains( steps.newversion.output.new_tag, 'rc' ) && env.build_ok == 1 }} |
64 | 50 | uses: release-drafter/release-drafter@v5 |
65 | 51 | with: |
66 | 52 | name: "v${{ steps.newversion.outputs.new_tag }}" |
67 | 53 | tag: "v${{ steps.newversion.outputs.new_tag }}" |
68 | 54 | version: "${{ steps.newversion.outputs.new_tag }}" |
69 | | - prerelease: true |
| 55 | + prerelease: false |
70 | 56 | publish: true |
71 | 57 | env: |
72 | 58 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
73 | 59 |
|
74 | | - - name: Print release candidate info |
| 60 | + - name: Print release info |
75 | 61 | run: | |
76 | | - echo ${{ steps.cutprerelease.outputs.id }} |
77 | | - echo ${{ steps.cutprerelease.outputs.name }} |
78 | | - echo ${{ steps.cutprerelease.outputs.tag_name }} |
79 | | - echo ${{ steps.cutprerelease.outputs.html_url }} |
80 | | - echo ${{ steps.cutprerelease.outputs.upload_url }} |
| 62 | + echo ${{ steps.cutrelease.outputs.id }} |
| 63 | + echo ${{ steps.cutrelease.outputs.name }} |
| 64 | + echo ${{ steps.cutrelease.outputs.tag_name }} |
| 65 | + echo ${{ steps.cutrelease.outputs.html_url }} |
| 66 | + echo ${{ steps.cutrelease.outputs.upload_url }} |
81 | 67 |
|
82 | 68 | - name: Upload wheel to GitHub release |
83 | 69 | id: upload-wheel |
84 | | - if: ${{ contains( steps.newversion.output.new_tag, 'rc' ) && env.build_ok == 1 }} |
| 70 | + if: ${{ env.build_ok == 1 }} |
85 | 71 | uses: shogo82148/actions-upload-release-asset@v1 |
86 | 72 | with: |
87 | | - upload_url: ${{ steps.cutprerelease.outputs.upload_url }} |
88 | | - |
89 | | - - name: Generate release changelog |
90 | | - uses: heinrichreimer/github-changelog-generator-action@master |
91 | | - if: ${{ !contains( steps.newversion.output.new_tag, 'rc' ) && env.build_ok == 1 }} |
92 | | - with: |
93 | | - token: ${{ secrets.GITHUB_TOKEN }} |
94 | | - sinceTag: "v1.3.1" |
95 | | - excludeTags: "latest" |
96 | | - breakingLabel: "Breaking Changes" |
97 | | - breakingLabels: "V: major" |
98 | | - enhancementLabel: "New Features" |
99 | | - enhancementLabels: "P: enhancement" |
100 | | - bugsLabel: "Bug Fixes" |
101 | | - bugLabels: "P: bug" |
102 | | - excludeLabels: "release" |
103 | | - issues: false |
104 | | - issuesWoLabels: false |
105 | | - maxIssues: 100 |
106 | | - pullRequests: true |
107 | | - prWoLabels: false |
108 | | - author: true |
109 | | - unreleased: true |
110 | | - compareLink: true |
111 | | - stripGeneratorNotice: true |
112 | | - verbose: true |
| 73 | + upload_url: ${{ steps.cutrelease.outputs.upload_url }} |
113 | 74 |
|
114 | 75 | # - name: Publish to Test PyPi |
115 | 76 | # if: ${{ !contains( steps.newversion.output.new_tag, 'rc' ) && env.build_ok == 1 }} |
|
0 commit comments