|
1 |
| -name: Upload Fail2Ban ZIP to Releases |
| 1 | +name: Create ZIPs for Download |
2 | 2 |
|
3 | 3 | on:
|
4 |
| - workflow_dispatch: # Chạy thủ công |
| 4 | + workflow_dispatch: |
5 | 5 |
|
6 | 6 | jobs:
|
7 |
| - upload: |
| 7 | + zip-and-release: |
8 | 8 | runs-on: ubuntu-latest
|
9 |
| - permissions: |
10 |
| - contents: write # Cho phép ghi release |
11 | 9 |
|
12 | 10 | steps:
|
13 |
| - - name: Checkout code |
| 11 | + - name: Checkout source code |
14 | 12 | uses: actions/checkout@v4
|
15 | 13 |
|
16 |
| - - name: Create ZIP excluding README.md and .github |
| 14 | + - name: Set up release folder |
| 15 | + run: mkdir -p release |
| 16 | + |
| 17 | + - name: Zip each folder (excluding .github and README.md) |
17 | 18 | run: |
|
18 |
| - mkdir -p release |
19 |
| - zip -r release/fail2ban.zip . -x "README.md" ".github/*" |
| 19 | + shopt -s dotglob |
| 20 | + for dir in */ ; do |
| 21 | + name=$(basename "$dir") |
| 22 | + if [[ "$name" == ".github" || "$name" == "release" ]]; then |
| 23 | + continue |
| 24 | + fi |
| 25 | + zip -r "release/${name}.zip" "$dir" -x "*.git*" ".github/*" |
| 26 | + done |
20 | 27 |
|
21 |
| - - name: Get latest release info |
22 |
| - id: get_latest_release |
23 |
| - uses: bruceadams/get-release@v1 |
24 |
| - with: |
25 |
| - token: ${{ secrets.GITHUB_TOKEN }} |
| 28 | + - name: Remove README.md from release folder if exists |
| 29 | + run: rm -f release/README.md || true |
26 | 30 |
|
27 |
| - - name: Upload ZIP to latest release tag |
| 31 | + - name: Upload zipped folders to "latest" release |
28 | 32 | uses: softprops/action-gh-release@v2
|
29 | 33 | with:
|
30 | 34 | tag_name: latest
|
31 |
| - files: release/fail2ban.zip |
32 |
| - env: |
33 |
| - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
34 |
| - |
35 |
| - - name: Upload ZIP to latest release (by ID) |
36 |
| - if: steps.get_latest_release.outputs.id != '' |
37 |
| - uses: softprops/action-gh-release@v2 |
38 |
| - with: |
39 |
| - release_id: ${{ steps.get_latest_release.outputs.id }} |
40 |
| - files: release/fail2ban.zip |
41 |
| - overwrite: true |
| 35 | + files: release/*.zip |
| 36 | + fail_on_unmatched_files: true |
42 | 37 | env:
|
43 | 38 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
0 commit comments