|
4 | 4 | name: Build-and-Release |
5 | 5 |
|
6 | 6 | on: |
7 | | - push: |
8 | | - tags: |
9 | | - - 'v*' # Runs only for tags that start with v (new versions) |
| 7 | + release: |
| 8 | + types: created |
10 | 9 |
|
11 | 10 | jobs: |
12 | | - build_and_publish: |
| 11 | + build_and_publish_to_pipy: |
13 | 12 | runs-on: ubuntu-latest |
14 | 13 | permissions: |
15 | 14 | id-token: write # This is required for requesting the JWT |
|
36 | 35 | - name: Publish package to PyPi |
37 | 36 | uses: pypa/gh-action-pypi-publish@release/v1 |
38 | 37 |
|
39 | | - changelog: |
40 | | - runs-on: ubuntu-latest |
41 | | - needs: build_and_publish |
42 | | - steps: |
43 | | - - name: "Generate release changelog" |
44 | | - uses: heinrichreimer/[email protected] |
45 | | - with: |
46 | | - token: ${{ secrets.GITHUB_TOKEN }} |
47 | | - |
48 | | - createrelease: |
49 | | - name: Create Release |
50 | | - runs-on: ubuntu-latest |
51 | | - needs: changelog |
52 | | - outputs: |
53 | | - upload_url: ${{ steps.create_release.outputs.upload_url }} |
54 | | - steps: |
55 | | - - name: Create Release For Tag |
56 | | - id: create_release |
57 | | - uses: actions/create-release@v1 |
58 | | - env: |
59 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
60 | | - with: |
61 | | - tag_name: ${{ github.ref_name }} |
62 | | - release_name: Release ${{ github.ref_name }} |
63 | | - body: ${{ needs.changelog.outputs.changelog }} |
64 | | - draft: ${{ contains(github.ref_name, 'test') }} |
65 | | - prerelease: ${{ contains(github.ref_name, 'beta') }} |
66 | | - |
67 | 38 | buildassets: |
68 | 39 | name: Build packages |
69 | | - needs: createrelease |
70 | 40 | runs-on: ${{ matrix.os }} |
71 | 41 | strategy: |
72 | 42 | fail-fast: true |
@@ -113,32 +83,17 @@ jobs: |
113 | 83 | run: ${{matrix.CMD_BUILD}} |
114 | 84 | - name: Upload Release Asset |
115 | 85 | id: upload-release-asset |
116 | | - uses: actions/upload-release-asset@v1 |
117 | | - env: |
118 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 86 | + uses: svenstaro/upload-release-action@v2 |
119 | 87 | with: |
120 | | - upload_url: ${{ needs.createrelease.outputs.upload_url }} |
121 | | - asset_path: ./dist/${{ matrix.OUT_FILE_NAME }} |
| 88 | + repo_token: ${{ secrets.GITHUB_TOKEN }} |
| 89 | + file: ./dist/${{ matrix.OUT_FILE_NAME }} |
122 | 90 | asset_name: ${{ matrix.OUT_FILE_NAME }} |
123 | | - asset_content_type: ${{ matrix.ASSET_MIME }} |
124 | | - |
125 | | - purge_release_if_failed: |
126 | | - name: Delete release if build failed |
127 | | - needs: buildassets |
128 | | - runs-on: ubuntu-latest |
129 | | - if: ${{ failure() || cancelled() }} |
130 | | - steps: |
131 | | - - uses: dev-drprasad/[email protected] |
132 | | - env: |
133 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
134 | | - with: |
135 | | - delete_release: true |
136 | | - tag_name: ${{ github.ref_name }} |
137 | | - |
| 91 | + tag: ${{ github.ref }} |
| 92 | + overwrite: true |
138 | 93 |
|
139 | 94 | publish_release: |
140 | 95 | name: Publish release |
141 | | - needs: buildassets |
| 96 | + needs: [buildassets, build_and_publish_to_pipy] |
142 | 97 | runs-on: ubuntu-latest |
143 | 98 | permissions: |
144 | 99 | contents: 'read' |
|
0 commit comments