add tunnel release cd

Kim committed Mar 26, 2026 at 10:34 UTC 616700696781040bae91f6e562bfb1dc183639bf
1 file changed +46
.github/workflows/cd.yml
+46
@@ -60,3 +60,49 @@ jobs:
60 labels: ${{ steps.meta.outputs.labels }}
61 cache-from: type=gha,mode=max
62 cache-to: type=gha,mode=max
63 +
64 + release-binaries:
65 + name: Build and Release Tunnel Binaries
66 + if: startsWith(github.ref, 'refs/tags/v')
67 + runs-on: ubuntu-latest
68 + permissions:
69 + contents: write
70 +
71 + steps:
72 + - name: Checkout code
73 + uses: actions/checkout@v6
74 +
75 + - name: Set up Go
76 + uses: actions/setup-go@v6
77 + with:
78 + go-version-file: go.mod
79 + cache: true
80 +
81 + - name: Build tunnel binaries
82 + shell: bash
83 + run: |
84 + make build-tunnel
85 + mkdir -p release
86 + cp cmd/relay-server/dist/tunnel/portal-* release/
87 +
88 + - name: Generate SHA256 checksums
89 + shell: bash
90 + run: |
91 + cd release
92 + sha256sum * > checksums.txt
93 + while read -r sum file; do
94 + printf '%s %s\n' "$sum" "$file" > "${file}.sha256"
95 + done < checksums.txt
96 +
97 + - name: Publish GitHub release assets
98 + env:
99 + GH_TOKEN: ${{ github.token }}
100 + shell: bash
101 + run: |
102 + if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then
103 + gh release upload "${GITHUB_REF_NAME}" release/* --clobber
104 + else
105 + gh release create "${GITHUB_REF_NAME}" release/* \
106 + --generate-notes \
107 + --title "${GITHUB_REF_NAME}"
108 + fi