@@ -20,14 +20,18 @@ jobs:
2020 matrix :
2121 goos : [linux, darwin, windows]
2222 goarch : [amd64, arm64]
23+ exclude :
24+ # 排除Windows ARM64,因为可能不稳定
25+ - goos : windows
26+ goarch : arm64
2327
2428 steps :
2529 - uses : actions/checkout@v4
2630
2731 - name : Set up Go
2832 uses : actions/setup-go@v4
2933 with :
30- go-version : " 1.22 "
34+ go-version : " 1.21.3 "
3135
3236 - name : Build
3337 run : |
@@ -36,39 +40,25 @@ jobs:
3640
3741 - name : Test
3842 run : go test -v ./...
43+
3944 - name : Upload artifacts
40- uses : actions/upload-artifact@v3
45+ uses : actions/upload-artifact@v4
4146 with :
4247 name : pf_tools-${{ matrix.goos }}_${{ matrix.goarch }}
4348 path : ./dist/${{ matrix.goos }}_${{ matrix.goarch }}/pf_tools*
4449
4550 release :
4651 needs : [build]
4752 runs-on : ubuntu-latest
53+ # 只在tag推送时运行
54+ if : startsWith(github.ref, 'refs/tags/')
4855 steps :
49- - name : Download Linux artifacts
50- uses : actions/download-artifact@v3
56+ - name : Download all artifacts
57+ uses : actions/download-artifact@v4
5158 with :
52- name : pf_tools-linux_amd64
53- path : ./dist/linux_amd64/
54-
55- - name : Download artifacts
56- uses : actions/download-artifact@v3
57- with :
58- name : pf_tools-darwin_amd64
59- path : ./dist/darwin_amd64/
60-
61- - name : Download artifacts
62- uses : actions/download-artifact@v3
63- with :
64- name : pf_tools-darwin_arm64
65- path : ./dist/darwin_arm64/
66-
67- - name : Download artifacts
68- uses : actions/download-artifact@v3
69- with :
70- name : pf_tools-windows_amd64
71- path : ./dist/windows_amd64/
59+ pattern : pf_tools-*
60+ merge-multiple : true
61+ path : ./dist/
7262
7363 - name : Create Release
7464 id : create_release
@@ -81,42 +71,12 @@ jobs:
8171 draft : false
8272 prerelease : false
8373
84- - name : Upload Release Asset Linux
85- uses : actions/upload-release-asset@v1
86- env :
87- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
88- with :
89- upload_url : ${{ steps.create_release.outputs.upload_url }}
90- asset_path : ./dist/linux_amd64/pf_tools-linux_amd64
91- asset_name : pf_tools-linux_amd64
92- asset_content_type : application/octet-stream
93-
94- - name : Upload Release Asset macOS amd
95- uses : actions/upload-release-asset@v1
96- env :
97- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
98- with :
99- upload_url : ${{ steps.create_release.outputs.upload_url }}
100- asset_path : ./dist/darwin_amd64/pf_tools-darwin_amd64
101- asset_name : pf_tools-darwin_amd64
102- asset_content_type : application/octet-stream
103-
104- - name : Upload Release Asset macOS arm
105- uses : actions/upload-release-asset@v1
106- env :
107- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
108- with :
109- upload_url : ${{ steps.create_release.outputs.upload_url }}
110- asset_path : ./dist/darwin_arm64/pf_tools-darwin_arm64
111- asset_name : pf_tools-darwin_arm64
112- asset_content_type : application/octet-stream
113-
114- - name : Upload Release Asset Windows
74+ - name : Upload Release Assets
11575 uses : actions/upload-release-asset@v1
11676 env :
11777 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
11878 with :
11979 upload_url : ${{ steps.create_release.outputs.upload_url }}
120- asset_path : ./dist/windows_amd64/pf_tools-windows_amd64.exe
121- asset_name : pf_tools-windows_amd64.exe
80+ asset_path : ./dist/
81+ asset_name : pf_tools-binaries
12282 asset_content_type : application/octet-stream
0 commit comments